Бинарные деревья поиска - C#

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

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

Доброй ночи, помогите пожалуйста разобраться в коде, я его нашел в интернете:
Листинг программы
  1. class Tree<T> where T: IComparable
  2. {
  3. protected class Node
  4. {
  5. public T Value
  6. {
  7. get;
  8. set;
  9. }
  10. public Node Left
  11. {
  12. get;
  13. set;
  14. }
  15. public Node Right
  16. {
  17. get;
  18. set;
  19. }
  20. public Node(T value)
  21. {
  22. Value = value;
  23. }
  24. }
  25. protected Node root;
  26.  
  27. public void AddElement(T newElement)
  28. {
  29. if (_root == null)
  30. {
  31. _root = new Node<T>(newElement);
  32. return;
  33. }
  34. AddElementRecursion(_root, newElement);
  35. }
  36. private static void AddElementRecursion(Node<T>currentNode, T newElement)
  37. {
  38. if (currentNode.Element.CompareTo(newElement) < 0)
  39. {
  40. if (currentNode.Right == null)
  41. currentNode.Right = new Node<T>(newElement);
  42. else
  43. AddElementRecursion(currentNode.Right, newElement);
  44. }
  45. else
  46. {
  47. if ( currentNode.Left == null )
  48. currentNode.Left = new Node<T>(newElement);
  49. else
  50. AddElementRecursion(currentNode.Left, newElement);
  51. }
  52. }
  53. }
в классе Node описан только 1 конструктор же а все остальное это методы? что означает запись currentNode.Right currentNode.Value? А само мое задание: " На примере любого словаря нужно построить структуру на основе бинарного дерева с возможностью добавления элементов и поиска за время O(log n)." и еще вопрос, "дерево поиска — это структура данных, способная хранить таблицу пар (key, value) и поддерживающая три операции: FIND, INSERT, REMOVE." Мне нужно заполнить словарь , а тогда чем будет у меня являться key, value ?

Решение задачи: «Бинарные деревья поиска»

textual
Листинг программы
  1. protected class Node
  2.         {
  3.             public T Value  
  4.             {
  5.                 get;
  6.                 set;
  7.             }
  8.             public Node Left
  9.             {
  10.                 get;
  11.                 set;
  12.             }
  13.             public Node Right
  14.             {
  15.                 get;
  16.                 set;
  17.             }
  18.            //понял, что это конструктор, а то что выше это не методы и не конструкторы, что это?
  19.             public Node(T value)
  20.             {
  21.                 Value = value;
  22.             }
  23.         }

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


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

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

9   голосов , оценка 3.889 из 5

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

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

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