Инфиксный рекурсивный обход дерева - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д