
- •Бинарные
- •Бинарное дерево
- •Виды бинарных
- •Идеально сбалансированные
- •Правило построения
- •Дерево поиска
- •Типовые операции над деревьями поиска:
- •Поиск по дереву с включением
- •Включение в дерево
- •Обход дерева
- •Обход дерева
- ••Begin
- •Удаление из дерева
- •Удаление узла, не имеющего потомков
- •Удаление узла с двумя потомками
- •Удаление узла (общий случай)
- •Правило удаления
- •Удаление узлов (общий случай) 13 15 10
- ••Procedure Delet (x:integer; Var p:ref);
- ••Begin
- •AVL (АВЛ)-деревья
- •AVL (АВЛ)-деревья
- •AVL (АВЛ)-деревья
- •AVL (АВЛ)-деревья
- •AVL (АВЛ)-деревья
- •AVL (АВЛ)-деревья
- •AVL (АВЛ)-деревья
- •Принцип роботи алгоритма
- •AVL (АВЛ)-деревья
- •Б-деревья
- •Б-деревья
- •Б-деревья
- •Б-деревья
- •Б-деревья
- •Алгоритм включення

Бинарные
Деревья
1

Бинарное дерево
Бинарное дерево —
динамическая структура данных, состоящая из узлов, каждый из которых содержит кроме данных не более двух ссылок на различные бинарные деревья.
На каждый узел имеется ровно одна ссылка.
Начальный узел называется корнем дерева.
2

Виды бинарных
деревьев
1.Идеально сбалансированное бинарное дерево
2.Дерево поиска
3.Сбалансированное АВЛ дерево
3

Идеально сбалансированные
деревья
•Дерево идеально сбалансированное, если для каждого узла количество узлов в левом и правом поддеревьях отличаются не больше одного.
4

Правило построения
Правило равномерного распределения при
известном количестве числа узлов n , которые формируются с помощью рекурсии:
• 1. Взять один узел как корень.
• 2. Построить левое поддерево из
nl = n div 2 узлов
• 3. Построить правое поддерево из nr =
n-nl-1 узлов.
5

• Пример: входные данные для дерева из п = 21 узла:
8 |
9 11 15 19 |
20 21 |
7 |
3 |
2 1 |
5 6 |
4 |
13 14 10 12 |
17 16 18 |
|
nl = n div 2 |
|
|
nr = n-nl-1 |


Дерево поиска
1.Растущая структура
2.Двоичное дерево поиска может быть либо пустым, либо оно обладает таким свойством, что корневой элемент имеет большее значение узла, чем любой элемент в левом поддереве, и меньшее (или равное), чем элементы в правом поддереве. Указанное свойство называется характеристическим свойством двоичного дерева поиска и
выполняется для любого узла такого дерева, включая корень.
8

Типовые операции над деревьями поиска:
•добавление элемента в дерево;
•удаление элемента из дерева;
•обход дерева (для печати элементов и т.д.);
•поиск в дереве (элемента с заданным ключом).
Поскольку определение двоичного дерева рекурсивно, то все указанные типовые операции могут быть реализованы в виде рекурсивных подпрограмм (на практике именно такой вариант
чаще всего и применяется). |
9 |

Поиск по дереву с включением
•Type
•ref = ^Wword;
•Wword = Record
• |
key : integer; |
• |
count : integer; |
• |
left, right : ref; |
• |
End; |
•Var
•root : ref;
• |
k : integer; |
10 |