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

Динамические структуры данных:
деревья
1

Основные понятия
•A – корень
•А,Б,В,Ж – вершины, или узлы
•Г,Д,Е,З,І,К – листья
•А Б \
•А В – рёбра, или ветки, или дуги
• Б Г / |
2 |
|

Основные понятия
• Дерево - это совокупность узлов (вершин) и соединяющих их направленных ребер (дуг), дерево - это корень и несколько связанных
с ним деревьев (поддеревьев)
•причем в каждый узел (за исключением одного - корня) ведет ровно
одна дуга.
• |
Корень - это начальный узел дерева, в который не ведет ни одной |
|
|
дуги. |
|
• |
Предком для узла x называется узел дерева, из которого |
|
|
существует путь (по стрелкам) в узел x. |
|
• |
Потомком узла x называется узел дерева, в который |
|
|
существует путь (по стрелкам) из узла x. |
3 |

Основные понятия
• |
Родителем для узла x называется узел дерева, из которого |
|
существует непосредственная дуга в узел x. |
• |
Сыном узла x называется узел дерева, в который существует |
|
непосредственная дуга из узла x. |
• |
Уровнем узла x называется длина пути (количество дуг) от |
|
корня к данному узлу. Считается, что корень находится на уровне |
|
0. |
• |
Листом дерева называется узел (терминальный элемент), не |
|
имеющий потомков. |
• |
Внутренней вершиной называется узел, имеющий потомков. |
|
4 |

Основные понятия
• Высотой (глубиной) дерева называется максимальный
уровень листа дерева и определяется количеством уровней, на которых располагаются его вершины Высота пустого дерева рана нулю, высота дерева из одного корня – единице.
• Степенью вершины в дереве называется количество дуг, которое из нее выходит.
• Упорядоченным деревом называется дерево, все
вершины которого упорядочены (то есть имеет значение последовательность перечисления потомков каждого узла).
•Дерево представляет собой типичную рекурсивную структуру
(определяемую через саму себя). |
5 |
|

Бинарные
(двоичные)
деревья
6

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

Двоичные деревья
•На практике используются главным образом деревья особого вида, называемые двоичными (бинарными).
•Двоичным деревом называется дерево, каждый узел которого имеет не более двух наследников.
Примером может служить
•- генеалогическое дерево (родословная). - в корне дерева находитесь вы сами, от вас идет две дуги к родителям, от каждого из родителей - две дуги к их родителям и т.д.
•Арифметическое виражение , где каждая операция – узел, операнди – поддеревья. (a+b/c)*(d-e*f)
•
8

Двоичные деревья
•Можно определить двоичное дерево и рекурсивно:
•1) пустая структура является двоичным деревом
•2) дерево - это корень и два связанных с ним двоичных дерева, которые называют левым и
правым поддеревом
•Двоичные деревья упорядочены, то есть различают левое и правое поддеревья
•Строго двоичным деревом называется дерево, у которого каждая внутренняя вершина имеет
непустые левое и правое поддеревья.
•Полным двоичным деревом называется дерево, у которого все листья находятся на одном уровне
и каждая внутренняя вершина имеет непустые левое
и правое поддеревья. |
9 |

Описание двоичного дерева
•Type
•ref = ^node;
•node = Record
• |
op : char; |
• |
left : ref; |
• |
right: ref |
• |
End; |
•Для того, чтобы выполнить
•определенную операцию
•над всеми вершинами
•дерева необходимо все
•его вершины просмотреть.
•Такая задача называется
•обходом дерева.