Содержание
- 2. Недостаток бинарных поисковых деревьев При создании дерева последовательностью вставок длины различных ветвей могут сильно различаться: БПД,
- 3. Подходы к решению проблемы Создать древовидные структуры, у которых длины ветвей будут не сильно отличаться друг
- 4. АВЛ-ДЕРЕВЬЯ АВЛ-дерево (почти сбалансированное дерево) – двоичное поисковое дерево, для каждой вершины которого высота её двух
- 5. Показатель баланса вершины АВЛ-дерева Для каждой вершины дерева будем хранить показатель её баланса: -1, если левое
- 6. Пример АВЛ-дерева с наихудшей балансировкой 54 32 71 16 11 35 61 97 90 60 57
- 7. Оценка высоты АВЛ-дерева в зависимости от числа вершин В идеальном случае (высоты всех поддеревьев равны) В
- 8. Восстановление сбалансированности вершин АВЛ-дерева после вставки После выполнения вставки необходимо изменить показатели баланса у вершин, находящихся
- 9. β Пояснение остановки при установке показателя баланса в 0 Высота дерева, начинающегося с A , не
- 10. α (h-1) Устранение разбалансированности - вращение До вставки (высота – h+1) После вставки (высота – h+2)
- 11. α (h-1) α (h-1) Высота дерева не изменилась, дальнейшая проверка не нужна Устранение разбалансированности – вращение
- 12. α (h-1) Устранение разбалансированности – двойное вращение До вставки (высота – h+1) После вставки (высота –
- 13. α (h-1) α (h-1) Устранение разбалансированности – двойное вращение (продолжение) A α (h-1) δ (h-1) -2
- 14. ВОССТАНОВЛЕНИЕ СБАЛАНСИРОВАННОСТИ ВЕРШИН АВЛ-ДЕРЕВА ПОСЛЕ УДАЛЕНИЯ После выполнения удаления необходимо изменить показатели баланса у вершин, находящихся
- 15. До удаления ПОЯСНЕНИЕ ОСТАНОВКИ ПРИ УСТАНОВКЕ ПОКАЗАТЕЛЯ БАЛАНСА В ±1 A α (h) β (h) 0
- 16. УСТРАНЕНИЕ РАЗБАЛАНСИРОВАННОСТИ – ВРАЩЕНИЕ (тип 1) До удаления (высота – h+2) После удаления (высота – h+2)
- 17. УСТРАНЕНИЕ РАЗБАЛАНСИРОВАННОСТИ – ВРАЩЕНИЕ (тип 1)(продолжение) После удаления (высота – h+2) После вращения (высота – h+1)
- 18. УСТРАНЕНИЕ РАЗБАЛАНСИРОВАННОСТИ – ВРАЩЕНИЕ (тип 2) До удаления (высота – h+2) После удаления (высота – h+2)
- 19. УСТРАНЕНИЕ РАЗБАЛАНСИРОВАННОСТИ – ВРАЩЕНИЕ (тип 2)(продолжение) После удаления (высота – h+2) После вращения (высота – h+2)
- 20. До удаления (высота – h+2) -2 1 После удаления (высота – h+2) УСТРАНЕНИЕ РАЗБАЛАНСИРОВАННОСТИ – ДВОЙНОЕ
- 21. Устранение разбалансированности – двойное вращение (продолжение) A α (h-1) δ (h-1) -2 β B ? После
- 22. СИЛЬНО ВЕТВЯЩИЕСЯ ДЕРЕВЬЯ Сильно ветвящееся дерево ((a,b)-дерево) – поисковое дерево, все ветви которого имеют одинаковую высоту,
- 23. Типы вершин в (2, 4)-дереве справочные (внутренние) вершины key[i] – максимальное значение ключа в поддереве, начинающемся
- 24. Пример (2, 4)-дерева 2 7 14 10 18 45 48 67 64 71 75 84 88
- 25. Удачный поиск в (2, 4)-дереве Поиск значения 45 2 7 14 10 18 45 48 67
- 26. Неудачный поиск в (2, 4)-дереве Неудачный поиск значения 44 2 7 14 10 18 45 48
- 27. Добавление нового элемента Выполняем поиск, определяя отца добавляемого элемента (вершину f) Если f имеет двух или
- 28. Добавление нового элемента (продолжение) Если f имеет четырёх сыновей, предварительно расщепляем её на две вершины f1
- 29. Добавление нового элемента (продолжение) Если f была корнем, создаём новый корень, сыновьями которого будут f1 и
- 30. Добавление нового элемента (особые случаи) Если дерево пусто, создаём единственную вершину - лист Если дерево состояло
- 31. Удаление значения из (2, 4)-дерева Пусть f – отец удаляемого листа Если у f было 3
- 32. Удаление значения из (2, 4)-дерева (продолжение) Пусть t – левый или правый брат вершины f с
- 33. Удаление значения из (2, 4)-дерева (продолжение) Если у t 2 сына, передаём оставшегося сына вершины f
- 34. КРАСНО-ЧЁРНЫЕ ДЕРЕВЬЯ Красно-чёрное дерево (Red-Black-Tree, RB-Tree) — это одно из самобалансирующихся двоичных деревьев поиска, гарантирующих логарифмический
- 35. Свойства красно-чёрного дерева Каждый узел покрашен либо в чёрный, либо в красный цвет. Листьями объявляются NIL-узлы
- 36. Оценки высоты и количества вершин Если h — чёрная высота дерева, то количество листьев не менее
- 37. Пример чёрно-красного дерева 41 58 87 38 99 91 98 78 50 32
- 38. Вставка нового элемента в красно-чёрное дерево Новый элемент вставляется на место фиктивного листа и красится в
- 39. Вставка нового элемента в красно-чёрное дерево (продолжение) Если отец добавленного элемента – красный, смотрим на цвет
- 40. Вставка нового элемента в красно-чёрное дерево (продолжение) После перекраски, нужно продолжать проверку для вершины 45 После
- 41. Вставка нового элемента в красно-чёрное дерево (продолжение) Если дядя – чёрного цвета, выполняем вращение ли двойное
- 42. Вставка нового элемента в красно-чёрное дерево (продолжение) Если дядя – чёрного цвета, выполняем вращение или двойное
- 43. Удаление элемента из красно-чёрного дерева Если удаляемый элемент – красный, свойства красно-чёрного дерева на нарушаются, можно
- 44. Удаление элемента из красно-чёрного дерева Если удаляемый элемент – чёрный, свойство 4 может нарушиться. После удаления
- 46. Скачать презентацию