Инфиксный рекурсивный обход дерева - C#

Узнай цену своей работы

Формулировка задачи:

Задача написать инфиксный рекурсивный обход BST-дерева. Возвращает IEnumerable<int>. Написала процедуру, выводит вершину без детей 3 раза, вершину с одним ребенком 2 раза, вершину без детей один раз. Но в правильном порядке. Поскажите, как исправить
public IEnumerable<int> EnumerateIntInRec(Node node)
        {
            if (node.left == null)
            {
                yield return node.value;
            }
            else
            {
                foreach (int ch in EnumerateIntInRec(node.left))
                {
                    yield return ch;
                }
            }
            yield return node.value;
            if (node.right == null)
            {
                yield return node.value;
            }
            else
            {
                foreach (var ch in EnumerateIntInRec(node.right))
                {
                    yield return ch;
                }
            }
        }

Решение задачи: «Инфиксный рекурсивный обход дерева»

textual
Листинг программы
public IEnumerable<int> EnumerateIntInRec(Node node)
{
   if (node == null) yield break;
   foreach (int ch in EnumerateIntInRec(node.left)) yield return ch;
   yield return node.Value;
   foreach (var ch in EnumerateIntInRec(node.right)) yield return ch;
}

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

6   голосов , оценка 3.333 из 5