Показаны сообщения с ярлыком Бинарное дерево поиска. Показать все сообщения
Показаны сообщения с ярлыком Бинарное дерево поиска. Показать все сообщения

суббота, 31 марта 2012 г.

C++ : Алгоритмы - Бинарное дерево поиска. Часть III

Продолжение статьи про бинарные деревья...Уже третья часть...

На повестке дня - 2 вида поиска в бинарном дереве. Точнее, вид один, но видов возращаемых значений 2 - это true/false и pointer, то есть указатель на элемент в дереве.

Использовать будем конечно шаблоны и рекурсию. Ниже листинги этих четырёх (2 основных и две, которые вызываются рекурсивно) функций.

Возращает  булевское значение :
bool FindReturnBool(const TypeOfTree& dataToInsert);
//Вспомагательная функция для поиска елемента(true/false)
bool _FindReturnBool(BinaryTree<TypeOfTree>* element,const TypeOfTree& dataToInsert);     

суббота, 11 февраля 2012 г.

C++ : Алгоритмы - Бинарное дерево поиска. Часть II

Итак, продолжим..

Вторая статья про Бинарные деревья поиска. Будем реализовывать метод для вставки элементов в дерево, то есть, создание самого дерева.

Чуть-чуть за саму вставку. Деревья - это не списки, хотя чуть похожи. Поэтому и вставка будет кардинально отличатся от добавления элемента в простой список.

Добавление первого элемента в дерево простое. При добавлении же второго элемента мы должны посмотреть на значение корня: если же добавляемое значение меньше, чем значение корня, то добавляем вставляемый элемент в левое поддерево(то есть присваиваем левому указателю корня новый обьект структуры). Если же второй вставляемый элемент больше, чем значение корня, то добавляем узел в правое поддерево.


C++ : Алгоритмы - Бинарное дерево поиска. Часть I

Наконец-то у меня появилось время, чтобы продолжить заниматься своим блогом. На сей раз я представлю вам цикл статей, в котором буде повествоваться про одну из самых известных, ну и, я так думаю, самую простую структуру "из самых сложных" - Бинарное дерево поиска.

Деревья - это вообще интересная вещь. Если рассмотреть уже построеное дерево, то оно реально оправдывает свое название - оно реально похоже на дерево...только перевёрнутое=). Но это не мешает ему иметь корень - самую верхнюю вершину, с которой и начинается все дерево, листья - это самые  нижние вершины. Так же можно увидеть сходство и генеалогическим деревом - в нем есть родители, дети, братья etc..