Слайд 2
Пример:
Необходимо расположить все слова некоторого текста в алфавитном
порядке
Для решения данной задачи можно построить бинарное дерево поиска
и затем воспользоваться инфиксным обходом всех узлов дерева
Слайд 3
Допустим задан текст
«Сэр Исаак Ньютон по секрету признавался
друзьям, что он знает, как гравитация ведет себя, но
не знает почему»
Слайд 4
Текст в алфавитном порядке:
ведет
гравитация
друзьям
знает
Исаак
как
не
но
Ньютон
он
по
почему
признавался себя
секрету
сэр
что
Слайд 6
Дерево оптимальной структуры:
Ньютон
Слайд 7
Высота бинарного дерева
Пусть бинарное дерево содержит элементы:10,
20, 30, 40, 50, 60, 70
Последовательная вставка элементов дает
дерево максимальной высоты:
Слайд 9
Дерево минимальной высоты
Порядок вставки элементов:
40, 20, 60, 10,
30, 50, 70
Слайд 10
Высота бинарного дерева
Высота бинарного дерева зависит от
порядка выполнения операций вставки и удаления элементов
Высота бинарного дерева,
состоящего из N элементов меняется от log2(N+1) до N
Слайд 11
Цель:
Создание деревьев, не теряющих баланса при выполнении операций
вставки и удаления
Эффективность поиска в таких деревьев близка к
максимальной
Слайд 12
2-3 дерево
Каждый узел 2-3 дерева содержит одно или
два значения
Узлы дерева делятся на две категории:
Листья
Промежуточные узлы:
Если промежуточный
узел содержит одно значение, то он имеет два непустых поддерева (2-узел)
Если он содержит два значения, то он имеет три непустых поддерева (3-узел)
Все листья лежат на одном уровне
Слайд 13
2-3 дерево
Принцип упорядоченности для 2-3 дерева:
Для 2-узла –
все значения, лежащие в левом поддереве, имеют значения, меньшие
значений в узле, а значения, лежащие в правом поддереве – больше или равны значениям, хранящимся в узле
Слайд 14
Принцип упорядоченности для 2-3 дерева:
Для 3-узла – упорядоченность
означает следующее:
Пусть А1 и А2– значения ключей элементов, хранящиеся
в узле (А1 < А2), Т1 , Т2, Т3 – поддеревья этого узла.
Тогда справедливо неравенство:
K(Т1 )< А1 где K(Тi )- значения поисковых ключей в i-том поддереве
Слайд 15
Пример 2-3 дерева
15
21 | 22
28 | 30
5
| 8
4 | 10
11 | 13
16 | 19
2
24
Слайд 16
Пример нарушения структуры 2-3 дерева
15
21 | 22
28 |
30
5 | 8
4 | 10
11 | 13
2
24
Слайд 17
2-3 дерево
2-3 дерево не является бинарным
Все листья 2-3
дерева находятся на одном и том же уровне
Высота 2-3
дерева никогда не превышает минимальную высоту бинарного дерева, содержащего такое количество элементов
Слайд 18
Физическое представление
2-3 дерева
15
21
28
5
4
11
16
2
24
10
8
13
19
30
25
Высота дерева с точки зрения логической
структуры равна 3
С точки зрения физической структуры – 5
Слайд 19
Вставка элементов
Вставка элементов осуществляется только в листья
В случае,
если после вставки элемента образуется переполненный узел, поступают следующим
образом:
Узел делится на два узла, при этом среднее значение поднимается на уровень выше и присоединяется к узлу на предыдущем уровне
Слайд 23
Вставка элементов
15
21 | 22
28 | 30
5 |
8
4 | 10
11 | 12 |13
16 | 19
2
23
|24
Переполнение узла
Слайд 24
Вставка элементов
15
21 | 22
28 | 30
5 |
8
4 | 10
16 | 19
12
23 |24
Разбиваем на 2
узла
13
11
2
Поднимаем вверх
Слайд 25
Вставка элементов
15
21 | 22
28 | 30
5 |
8
4 | 10 | 12
16 | 19
23 |24
13
11
2
Слайд 26
Вставка элементов
15
21 | 22
28 | 30
5 |
8
16 | 19
23 |24
13
11
2
10
12
4
Слайд 27
Удаление элементов
Находим ближайшее наибольшее значение и заменяем удаляемый
узел
Слайд 28
Удаление элементов
Склеиваем значения 12 и 13
Слайд 29
Удаление элементов
Используем метод переливания
Слайд 30
Удаление элементов
2
6
11
12|13
4
7 | 8
0 | 1
Ссылка на значение перемещается вместе со значением
Слайд 31
Преимущества 2-3 дерева
2-3 дерево всегда сбалансировано
Эффективность алгоритма поиска
в таком дереве имеет порядок O(log2(N))
Слайд 32
2-3-4 деревья
2-3-4 дерево может содержать четырехместные узлы
По сравнению
с 2-3 деревом алгоритмы вставки и удаления элементов осуществляются
за меньшее число шагов
Слайд 33
2-3-4 деревья
2-3-4 деревом высотой h называется дерево, которое
пусто
или имеет один из следующих видов:
r-узел, содержащий соответственно
1,2 или 3 значения
TL, TM,TR – деревья, имеющие высоту h-1
Слайд 34
2-3-4 деревья
Правила размещения данных
1) K(TL)
1 элемент)
2) K(TL)
(узел r содержит 2 элемента)
3)K(TL)S
Слайд 35
Вставка элементов
Четырехместный узел разделяется сразу после обнаружения, при
этом один из его элементов перемещается в родительский узел
Слайд 38
Вставка элементов
Добавим значение 70
Слайд 39
Вставка элементов
Добавим значения 80 и 15
Слайд 42
Разделение четырехместных узлов при вставке
Возможны случаи:
Узел является корнем
Узел
имеет двухместого родителя
Узел имеет трехместного родителя
Слайд 43
Удаление элементов
Находим узел, содержащий данный элемент
Заменяем элемент его
симметричным преемником (самый левый узел в правом поддереве)
Удаляем элемент
из листа
Замечание: в отличие от 2-3 дерева удаление можно осуществить за один проход дерева не перестраивая его
Слайд 44
Удаление элементов
При проходе дерева во время поиска элемента,
необходимо сразу преобразовать каждый двухместный узел в трех или
четырехместный
Замечание: преобразования производятся аналогично процедуре разделения, только в обратном порядке
Слайд 45
Заключение
Достоинства 2-3 и 2-3-4 деревьев заключается в том,
что они хорошо сохраняют баланс
Алгоритмы вставки и удаления в
2-3-4 дерево выполняются за меньшее число шагов чем для 2-3 дерева