Изменения

Перейти к: навигация, поиск

Дерево поиска, наивная реализация

303 байта добавлено, 08:26, 6 февраля 2012
сам поправил
[[Файл:Binary_search_tree.svg.png|right|200px|thumb|Бинарное дерево поиска из 9 элементов]]'''Бинарное дерево поиска (англ. binary search tree, BST)''' - структура данных для работы с динамическими множествами.
Бинарное дерево поиска должно обладать обладает следующим свойством: Если если <tex>x</tex> - узел бинарного дерева с ключом <tex>k</tex>, то все узлы в левом поддереве должны иметь ключи, меньшие или равные <tex>k</tex>, а в правом поддереве большие <tex>k</tex>(или в левом — строго меньшие, а в правом большие или равные).
== Операции в бинарном дереве поиска ==
=== Обход дерева поиска ===
Имеется простой алгоритм Для вывода всех ключей бинарного дерева поиска в отсортированном порядкеиспользуется простой алгоритм (англ. ''inorder tree traversal''). Tree_walkTree_inorder(node x)
if(x != null)
Tree_walkTree_inorder(x.left);
print(x.key);
Tree_waltTree_inorder(x.right);
Данный алгоритм выполняет обход за время <tex>O(n)</tex>, поскольку процедура вызывается ровно два раза для каждого узла дерева. Корректность данного алгоритма следует из свойств бинарного дерева поиска.
=== Поиск элемента ===
== Литература ==
1. Кормен, Т., Лейзерсон, Ч., Ривест, Р., Штайн, К. Алгоритмы: построение и анализ = Introduction to Algorithms / Под ред. И. В. Красикова. — 2-е изд. — М.: Вильямс, 2005. — 1296 с. — ISBN 5-8459-0857-4
 
[[Категория: Деревья поиска]]
[[Категория: Дискретная математика и алгоритмы]]

Навигация