Бинарные деревья поиска - 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;
}
}