Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
47
Добавлен:
12.05.2015
Размер:
607.74 Кб
Скачать

Виды бинарных

деревьев

1.Идеально сбалансированное бинарное дерево

2.Дерево поиска

3.Сбалансированное АВЛ дерево

21

Идеально сбалансированные

деревья

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

22

Правило построения

Правило равномерного распределения при

известном количестве числа узлов n , которые формируются с помощью рекурсии:

1. Взять один узел как корень.

2. Построить левое поддерево из nl = n div 2 узлов тем же способом.

3. Построить правое поддерево из nr = n-nl-1 узлов тем же способом.

23

• Пример: входные данные для дерева из п = 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

Uses Crt;

Type

ref=^node;

node=Record

key : integer;

left : ref;

right : ref;

End;

Var

n : integer;

root :ref;

25

26

Procedure PrintTree (t:ref; h:integer);

Var

i : integer;

Begin

If t <> Nil Then

With t^ Do

Begin

PrintTree (right, h+1);

For i:=1 To h Do Write (‘ ‘);

Writeln (key);

PrintTree (left, h+1)

End

End; {PrintTree}

27

Begin

ClrScr;

Writeln (‘Введіть кількість вузлів’);

Readln (n);

root:=Tree(n);

Writeln (‘Побудоване дерево’);

PrintTree(root,0);

Repeat Until KeyPressed;

End.

28

Дерево поиска

1.Растущая структура

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

выполняется для любого узла такого дерева, включая корень.

29

Соседние файлы в папке Алгоритмы и структуры данных