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

Бинарные

Деревья

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

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