Бинарные деревья поиска - 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; } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д