Поиск в ширину в двоичном бинарном дереве - C#

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

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

Ребят привет. У меня есть класс двоичного бинарного дерева, представленный как связь узлов. Помогите написать алгоритм поиска в ширину(breadth-first search) через очередь и функцию подсчитывающую высоту дерева...
Листинг программы
  1. class Uzel<TNode> : IComparable<TNode> where TNode : IComparable<TNode>
  2. {
  3. public Uzel<TNode> Left { get; set; }
  4. public Uzel<TNode> Right { get; set; }
  5. public TNode Value { get; private set; }
  6. public Uzel(TNode value)
  7. {
  8. Value = value;
  9. }
  10. public int CompareTo(TNode other)
  11. {
  12. return Value.CompareTo(other);
  13. }
  14. public int CompareNode(Uzel<TNode> other)
  15. {
  16. return Value.CompareTo(other.Value);
  17. }
  18. }
  19. public class Tree<T> : IEnumerable<T> where T : IComparable<T>
  20. {
  21. private Uzel<T> top;
  22. }

Решение задачи: «Поиск в ширину в двоичном бинарном дереве»

textual
Листинг программы
  1. public IEnumerator<T> BFS()
  2.         {
  3.             if (top == null)
  4.                 yield break;
  5.            
  6.             Queue<Uzel<T>> queue = new Queue<Uzel<T>>();
  7.             Uzel<T> current = top;
  8.             queue.Enqueue(current);
  9.             while (queue.Count != 0)
  10.             {
  11.                 Uzel<T> index = queue.Dequeue();
  12.                 Console.WriteLine(index);
  13.                 yield return current.Value;
  14.                
  15.                 if (current.Left != null)
  16.                 {
  17.                     queue.Enqueue(current.Left);
  18.                 }
  19.                 if (current.Right != null)
  20.                 {
  21.                     queue.Enqueue(current.Right);
  22.                 }
  23.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

8   голосов , оценка 3.75 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы