Сбалансированные деревья поиска

Содержание

Слайд 2

Пример: Необходимо расположить все слова некоторого текста в алфавитном порядке Для

Пример: Необходимо расположить все слова некоторого текста в алфавитном порядке

Для решения данной

задачи можно построить бинарное дерево поиска и затем воспользоваться инфиксным обходом всех узлов дерева
Слайд 3

Допустим задан текст «Сэр Исаак Ньютон по секрету признавался друзьям, что

Допустим задан текст

«Сэр Исаак Ньютон по секрету признавался друзьям, что он

знает, как гравитация ведет себя, но не знает почему»
Слайд 4

Текст в алфавитном порядке: ведет гравитация друзьям знает Исаак как не

Текст в алфавитном порядке:

ведет
гравитация
друзьям
знает
Исаак
как
не
но
Ньютон

он
по
почему
признавался себя
секрету
сэр
что

Слайд 5

Построение дерева сэр

Построение дерева

сэр

Слайд 6

Дерево оптимальной структуры: Ньютон

Дерево оптимальной структуры:

Ньютон

Слайд 7

Высота бинарного дерева Пусть бинарное дерево содержит элементы:10, 20, 30, 40,

Высота бинарного дерева

Пусть бинарное дерево содержит элементы:10, 20, 30, 40,

50, 60, 70
Последовательная вставка элементов дает дерево максимальной высоты:
Слайд 8

Дерево максимальной высоты

Дерево максимальной высоты

Слайд 9

Дерево минимальной высоты Порядок вставки элементов: 40, 20, 60, 10, 30, 50, 70

Дерево минимальной высоты

Порядок вставки элементов:
40, 20, 60, 10, 30, 50, 70

Слайд 10

Высота бинарного дерева Высота бинарного дерева зависит от порядка выполнения операций

Высота бинарного дерева

Высота бинарного дерева зависит от порядка выполнения операций

вставки и удаления элементов
Высота бинарного дерева, состоящего из N элементов меняется от log2(N+1) до N
Слайд 11

Цель: Создание деревьев, не теряющих баланса при выполнении операций вставки и

Цель:

Создание деревьев, не теряющих баланса при выполнении операций вставки и удаления
Эффективность

поиска в таких деревьев близка к максимальной
Слайд 12

2-3 дерево Каждый узел 2-3 дерева содержит одно или два значения

2-3 дерево

Каждый узел 2-3 дерева содержит одно или два значения
Узлы дерева

делятся на две категории:
Листья
Промежуточные узлы: Если промежуточный узел содержит одно значение, то он имеет два непустых поддерева (2-узел) Если он содержит два значения, то он имеет три непустых поддерева (3-узел)
Все листья лежат на одном уровне
Слайд 13

2-3 дерево Принцип упорядоченности для 2-3 дерева: Для 2-узла – все

2-3 дерево

Принцип упорядоченности для 2-3 дерева:
Для 2-узла – все значения, лежащие

в левом поддереве, имеют значения, меньшие значений в узле, а значения, лежащие в правом поддереве – больше или равны значениям, хранящимся в узле
Слайд 14

Принцип упорядоченности для 2-3 дерева: Для 3-узла – упорядоченность означает следующее:

Принцип упорядоченности для 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

Пример 2-3 дерева

15

21 | 22

28 | 30

5 | 8

4

| 10

11 | 13

16 | 19

2

24

Слайд 16

Пример нарушения структуры 2-3 дерева 15 21 | 22 28 |

Пример нарушения структуры 2-3 дерева

15

21 | 22

28 | 30

5 |

8

4 | 10

11 | 13

2

24

Слайд 17

2-3 дерево 2-3 дерево не является бинарным Все листья 2-3 дерева

2-3 дерево

2-3 дерево не является бинарным
Все листья 2-3 дерева находятся на

одном и том же уровне
Высота 2-3 дерева никогда не превышает минимальную высоту бинарного дерева, содержащего такое количество элементов
Слайд 18

Физическое представление 2-3 дерева 15 21 28 5 4 11 16

Физическое представление 2-3 дерева

15

21

28

5

4

11

16

2

24

10

8

13


19

30

25

Высота дерева с точки зрения логической структуры равна 3
С точки зрения физической структуры – 5

Слайд 19

Вставка элементов Вставка элементов осуществляется только в листья В случае, если

Вставка элементов

Вставка элементов осуществляется только в листья
В случае, если после вставки

элемента образуется переполненный узел, поступают следующим образом:
Узел делится на два узла, при этом среднее значение поднимается на уровень выше и присоединяется к узлу на предыдущем уровне
Слайд 20

Вставка элементов 23

Вставка элементов

23

Слайд 21

Вставка элементов

Вставка элементов

Слайд 22

Вставка элементов 12

Вставка элементов

12

Слайд 23

Вставка элементов 15 21 | 22 28 | 30 5 |

Вставка элементов

15

21 | 22

28 | 30

5 | 8

4 |

10

11 | 12 |13

16 | 19

2

23 |24

Переполнение узла

Слайд 24

Вставка элементов 15 21 | 22 28 | 30 5 |

Вставка элементов

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 |

Вставка элементов

15

21 | 22

28 | 30

5 | 8

4 |

10 | 12

16 | 19

23 |24

13

11

2

Слайд 26

Вставка элементов 15 21 | 22 28 | 30 5 |

Вставка элементов

15

21 | 22

28 | 30

5 | 8

16 | 19

23

|24

13

11

2

10

12

4

Слайд 27

Удаление элементов Находим ближайшее наибольшее значение и заменяем удаляемый узел

Удаление элементов

Находим ближайшее наибольшее значение и заменяем удаляемый узел

Слайд 28

Удаление элементов Склеиваем значения 12 и 13

Удаление элементов

Склеиваем значения 12 и 13

Слайд 29

Удаление элементов Используем метод переливания

Удаление элементов

Используем метод переливания

Слайд 30

Удаление элементов 2 6 11 12|13 4 7 | 8 0

Удаление элементов

2

6

11

12|13

4

7 | 8

0 | 1

Ссылка

на значение перемещается вместе со значением
Слайд 31

Преимущества 2-3 дерева 2-3 дерево всегда сбалансировано Эффективность алгоритма поиска в таком дереве имеет порядок O(log2(N))

Преимущества 2-3 дерева

2-3 дерево всегда сбалансировано
Эффективность алгоритма поиска в таком дереве

имеет порядок O(log2(N))
Слайд 32

2-3-4 деревья 2-3-4 дерево может содержать четырехместные узлы По сравнению с

2-3-4 деревья

2-3-4 дерево может содержать четырехместные узлы
По сравнению с 2-3 деревом

алгоритмы вставки и удаления элементов осуществляются за меньшее число шагов
Слайд 33

2-3-4 деревья 2-3-4 деревом высотой h называется дерево, которое пусто или

2-3-4 деревья

2-3-4 деревом высотой h называется дерево, которое пусто
или имеет

один из следующих видов:

r-узел, содержащий соответственно 1,2 или 3 значения
TL, TM,TR – деревья, имеющие высоту h-1

Слайд 34

2-3-4 деревья Правила размещения данных 1) K(TL) 2) K(TL) (узел r содержит 2 элемента) 3)K(TL) S

2-3-4 деревья

Правила размещения данных

1) K(TL)2) K(TL)

K(TM)(узел r содержит 2 элемента)
3)K(TL)S
Слайд 35

Вставка элементов Четырехместный узел разделяется сразу после обнаружения, при этом один

Вставка элементов

Четырехместный узел разделяется сразу после обнаружения, при этом один из

его элементов перемещается в родительский узел
Слайд 36

Вставка элементов

Вставка элементов

Слайд 37

Вставка элементов

Вставка элементов

Слайд 38

Вставка элементов Добавим значение 70

Вставка элементов

Добавим значение 70

Слайд 39

Вставка элементов Добавим значения 80 и 15

Вставка элементов

Добавим значения 80 и 15

Слайд 40

Вставка элементов

Вставка элементов

Слайд 41

Вставка элементов

Вставка элементов

Слайд 42

Разделение четырехместных узлов при вставке Возможны случаи: Узел является корнем Узел

Разделение четырехместных узлов при вставке

Возможны случаи:
Узел является корнем
Узел имеет двухместого родителя
Узел

имеет трехместного родителя
Слайд 43

Удаление элементов Находим узел, содержащий данный элемент Заменяем элемент его симметричным

Удаление элементов

Находим узел, содержащий данный элемент
Заменяем элемент его симметричным преемником (самый

левый узел в правом поддереве)
Удаляем элемент из листа
Замечание: в отличие от 2-3 дерева удаление можно осуществить за один проход дерева не перестраивая его
Слайд 44

Удаление элементов При проходе дерева во время поиска элемента, необходимо сразу

Удаление элементов

При проходе дерева во время поиска элемента, необходимо сразу преобразовать

каждый двухместный узел в трех или четырехместный
Замечание: преобразования производятся аналогично процедуре разделения, только в обратном порядке
Слайд 45

Заключение Достоинства 2-3 и 2-3-4 деревьев заключается в том, что они

Заключение

Достоинства 2-3 и 2-3-4 деревьев заключается в том, что они хорошо

сохраняют баланс
Алгоритмы вставки и удаления в 2-3-4 дерево выполняются за меньшее число шагов чем для 2-3 дерева