- •КЛАССИФИКАЦИЯ
- •ДЕРЕВЬЯ
- •Дерево (tree) – это непустая коллекция вершин и ребер, удовлетворяющих определенным требованиям.
- ••Вершина (vertex) – это простой объект (называемый также узлом), который может иметь имя
- ••Определяющее свойство дерева – существование только одного пути, соединяющие любые два узла.
- ••Деревья
- •Дерево с корнем (или неупорядоченное дерево) – это узел (называемый корнем), связанный с
- •Узлы в упорядоченных деревьях могут иметь
- •Если каждый узел содержит конкретное количество дочерних узлов, появляющихся в конкретном порядке, мы
- •Двоичное
- •Граф – это набор узлов с набором ребер, которые соединяют пары отдельных узлов
- •Каждое дерево считается графом. Но граф считается деревом, если он удовлетворяет любому из
- •МАТЕМАТИЧЕСКИЕ
- •ОБХОД ДЕРЕВА
- ••Прямой обход (сверху вниз), при котором мы посещаем узел, а затем левое и
- •Прямой обход дерева (рекурсивная реализация)
- •Прямой обход (нерекурсивная реализация)
- •ДЕРЕВЬЯ
- •Дерево бинарного поиска (BST) - это бинарное дерево, с каждым из внутренних узлов
- •Определяющее свойство бинарного дерева:
- •Характеристики производительности BST
- •СБАЛАНСИРОВАН НЫЕ ДЕРЕВЬЯ
- •Цель применения алгоритма с использованием сбалансированного дерева – сохранение BST-дерева максимально сбалансированным при
- •Функция разделения на части partR
- •РАНДОМИЗИРОВАННЫЕ BST-ДЕРЕВЬЯ
- •Новая запись в рандомизированном BST- дереве может располагаться в любом месте пути поиска
- ••Построение рандомизованного BST-дерева эквивалентно построению стандартного BST-дерева из случайно переставленных в исходном состоянии
- •Вставка ключей A B C D E F G H I в первоначально
- •Недостатки рандомизованных BST-деревьев.
- •Расширенными BST-деревьями являются деревья, построенные при помощи вставки со скосом (splay insertion).
- •НИСХОДЯЩИЕ 2-3-4 ДЕРЕВЬЯ
- •2-3-4 дерево поиска – это либо пустое дерево, либо дерево, содержащее три типа
- •Сбалансированное 2-3-4 дерево поиска – это 2-3- 4 дерево поиска, все пустые деревья
- •Вставка в 2-3-4 дерево
- •Построение 2-3-4 дерева
- •КРАСНО-ЧЁРНЫЕ ДЕРЕВЬЯ
- •Красно-чёрное дерево (RB-Tree) — это одно из самобалансирующихся двоичных деревьев поиска, гарантирующих логарифмический
- •Типы связей:
- •4 - узлы представляются тремя 2
- •Требования к RB-деревьям:
- •Разделение 4- узлов в RB – дереве
- •Вставка в RB – дерево
- •Построение RB -
- •RB- дерево бинарного поиска – это дерево бинарного поиска, в котором каждый узел
- •Сбалансированное RB- дерево бинарного поиска – это RB – дерево бинарного поиска, в
- •ПОРАЗРЯДНЫЙ
- •Деревья цифрового поиска.
- •Ветвление в дереве выполняется не в соответствии с результатом сравнения полных ключей, а
- •DST-дерево характеризуется тем, что каждый ключ размещается где-то вдоль пути, определенного разрядами ключа
- •Построение DST-дерева
- •Trie – дерево – бинарное дерево, имеющее ключи, связанные с каждым из его
- •Поиск и вставка в TRIE дереве.
- •Построение TRIE-дерева
- •Patricia-деревья
- •Поиск и вставка в PATRICIA- дереве и его построение
- •МНОГОПУТЕВЫЕ
- •Многопутевое trie-дерево – это многопутевое дерево, имеющее связанные с каждым их его листьев
- •Структуры trie-деревьев существования
- •Trie – дерево тернарного поиска (ternary search trie – TST)
- •TST-деревья
- •ВНЕШНИЙ ПОИСК
- •B-дерево порядка М – это дерево, которое либо пусто, либо состоит из k-узлов
Двоичное
дерево
Троичное дерево
Граф – это набор узлов с набором ребер, которые соединяют пары отдельных узлов (причем любую пару узлов соединяет только одно ребро).
Последовательность ребер, ведущих от одного узла до другого, когда ни один узел не посещается дважды, называется простым путём.
Граф является связным (connected), если существует простой путь, связывающий любую пару узлов.
Простой путь, у которого первый и последний узел совпадают, называется циклом (cycle).
Каждое дерево считается графом. Но граф считается деревом, если он удовлетворяет любому из следующих четырёх условий:
•Граф имеет N-1 ребер и ни одного цикла.
•Граф имеет N-1 ребер и является связным.
•Только один простой путь соединяет каждую пару вершин в графе.
•Граф является связным, но перестает быть таковым при удалении любого ребра.
Любое из этих условий – необходимое и достаточное условие для выполнения остальных трёх.
МАТЕМАТИЧЕСКИЕ
СВОЙСТВА
БИНАРНЫХ
ДЕРЕВЬЕВ
•Бинарное дерево с N внутренними узлами имеет N+1 внешних узлов.
•Бинарное дерево с N внутренними узлами имеет 2N связей: N-1 связей с внутренними узлами и N+1 связей с внешними узлами.
•Длина внешнего пути бинарного дерева, имеющего N внутренних узлов, на 2N больше длины внутреннего пути.
•Высота бинарного дерева с N внутренними узлами не меньше lgN и не больше N-1
•Длина внутреннего пути бинарного дерева с N внутренними узлами не меньше чем N lg(N/4) и не превышает N(N-1)/2
ОБХОД ДЕРЕВА
•Прямой обход (сверху вниз), при котором мы посещаем узел, а затем левое и правое поддеревья.
•Поперечный обход (слева направо), при котором мы посещаем левое поддерево, затем узел, а затем правое поддерево.
•Обратный обход (снизу вверх), при котором мы посещаем левое и правое поддеревья, а затем узел.
Прямой обход дерева (рекурсивная реализация)
void traverse (link h, void visit(link))
{
if (h == 0) return; visit(h); traverse(h->l, visit); traverse(h->r, visit);
}
Прямой обход (нерекурсивная реализация)
void traverse (link h, void visit(link))
{STACK<link> s(max); s.push (h);
While (! s.empty () )
{
visit(h = s.pop () );
if (h->r ! = 0) s.push(h->r); if (h->1 ! = 0) s.push(h->1);
}
}
ДЕРЕВЬЯ
БИНАРНОГО
ПОИСКА
