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

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

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

Доброй ночи, помогите пожалуйста разобраться в коде, я его нашел в интернете:
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);
        }
    }   
}
в классе Node описан только 1 конструктор же а все остальное это методы? что означает запись currentNode.Right currentNode.Value? А само мое задание: " На примере любого словаря нужно построить структуру на основе бинарного дерева с возможностью добавления элементов и поиска за время O(log n)." и еще вопрос, "дерево поиска — это структура данных, способная хранить таблицу пар (key, value) и поддерживающая три операции: FIND, INSERT, REMOVE." Мне нужно заполнить словарь , а тогда чем будет у меня являться key, value ?

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

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;
            }
        }

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


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

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

9   голосов , оценка 3.889 из 5
Похожие ответы