Дерево бінарного пошуку (binary search tree, bst):
ключ
кожного вузла дерева має значення більше
чи рівне значенню ключів його лівого
під-дерева і менше або ж рівне – правого
під-дерева. Рекурсивна реалізація пошуку
для додавання вузла в дерево робить
новий елемент зовнішнім вузлом
(«листочком» - бяднягою без посилань на
діток); якщо значення ключа нового
елемента відповідає якомусь ключу
існуючого вузла, то новий вузол стає
правим під-деревом цього вузла. BST – це
вже відсортований набір даних.
Існує
інший метод вставки, коли новий елемент
стає коренем, тобто, всі останні вставленні
вузли знаходяться поблизу вершини. Його
реалізація:
а)
якщо значення ключа нового вузла більше
значення ключа кореня, то тоді старий
корінь стає лівим під-деревом нового
вузла, а праве під-дерево старого кореня
– правим під-деревом нового;
б)
якщо значення ключа нового вузла менше
значення ключа кореня, тоді старий
корінь стає правим під-деревом нового
вузла, а ліве під-дерево старого кореня
– лівим під-деревом нового вузла.
в)
ротація
– перетворення дерева, основане на
обміні кореня з його дочірнім вузлом
із збереженням порядку слідування
ключів у вузлах BST-дерева:
Ротація
вправо
– місцями міняються корінь та його
лівий вузол = старий корінь стає правим
під-деревом нового кореня + праве
під-дерево нового кореня стає лівим
під-деревом старого кореня;
Ротація
вліво
– місцями міняються корінь та його
правий вузол = старий корінь стає лівим
під-деревом нового кореня + ліве
під-дерево нового кореня стає правим
старого.
Порозрядний
пошук;
Зовнішній
пошук.