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

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

Четвертая часть статьи про реализацию Бинарных деревьев на С++.

Реализовывать будем Обходы дерева

Обход бинарного дерева предполагает посещение всех элементов дерева, при этом каждая вершина посещается только один раз. Существует три вида таких обходов, каждый из которых мы будем реализовывать рекурсивно.

1) Прямой порядок (англ. preorder)
        Посетить корень, посетить левое поддерево, посетить правое поддерево.

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

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

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

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

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