Бинарные деревья поиска - C#
Формулировка задачи:
Доброй ночи, помогите пожалуйста разобраться в коде, я его нашел в интернете:
в классе Node описан только 1 конструктор же а все остальное это методы?
что означает запись currentNode.Right currentNode.Value?
А само мое задание: " На примере любого словаря нужно построить структуру на основе бинарного дерева с возможностью добавления элементов и поиска за время O(log n)."
и еще вопрос, "дерево поиска — это структура данных, способная хранить таблицу пар (key, value) и поддерживающая три операции: FIND, INSERT, REMOVE." Мне нужно заполнить словарь , а тогда чем будет у меня являться key, value ?
Листинг программы
- class Tree<T> where T: IComparable
- {
- protected class Node
- {
- public T Value
- {
- get;
- set;
- }
- public Node Left
- {
- get;
- set;
- }
- public Node Right
- {
- get;
- set;
- }
- public Node(T value)
- {
- Value = value;
- }
- }
- protected Node root;
- public void AddElement(T newElement)
- {
- if (_root == null)
- {
- _root = new Node<T>(newElement);
- return;
- }
- AddElementRecursion(_root, newElement);
- }
- private static void AddElementRecursion(Node<T>currentNode, T newElement)
- {
- if (currentNode.Element.CompareTo(newElement) < 0)
- {
- if (currentNode.Right == null)
- currentNode.Right = new Node<T>(newElement);
- else
- AddElementRecursion(currentNode.Right, newElement);
- }
- else
- {
- if ( currentNode.Left == null )
- currentNode.Left = new Node<T>(newElement);
- else
- AddElementRecursion(currentNode.Left, newElement);
- }
- }
- }
Решение задачи: «Бинарные деревья поиска»
textual
Листинг программы
- protected class Node
- {
- public T Value
- {
- get;
- set;
- }
- public Node Left
- {
- get;
- set;
- }
- public Node Right
- {
- get;
- set;
- }
- //понял, что это конструктор, а то что выше это не методы и не конструкторы, что это?
- public Node(T value)
- {
- Value = value;
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д