15
Розробка та аналіз алгоритмів 11. Бінарні дерева пошуку Мотивація. Означення Обхід дерева. Пошук елементів Додавання/видалення елементів (с) Олексій Молчановський, Prometheus.org.ua 1

11 Бінарні дерева пошуку

Embed Size (px)

Citation preview

Розробка та аналіз алгоритмів

11. Бінарні дерева пошуку

• Мотивація. Означення

• Обхід дерева. Пошук елементів

• Додавання/видалення елементів

(с) Олексій Молчановський, Prometheus.org.ua 1

Динамічні структури

(с) Олексій Молчановський, Prometheus.org.ua 2

Означення бінарного дерева пошуку

(с) Олексій Молчановський, Prometheus.org.ua 3

Збалансоване бінарне дерево пошуку

(с) Олексій Молчановський, Prometheus.org.ua 4

Пошук елементу в дереві

(с) Олексій Молчановський, Prometheus.org.ua 5

Пошук елементу в дереві

(с) Олексій Молчановський, Prometheus.org.ua 6

Пошук мінімального/максимального елементів

(с) Олексій Молчановський, Prometheus.org.ua 7

Обхід дерева у відсортованому порядку

(с) Олексій Молчановський, Prometheus.org.ua 8

Обхід дерева у відсортованому порядку

(с) Олексій Молчановський, Prometheus.org.ua 9

Пошук попереднього/наступного елементів

(с) Олексій Молчановський, Prometheus.org.ua 10

Додавання елементу

(с) Олексій Молчановський, Prometheus.org.ua 11

Видалення елементу. Варіант 1

(с) Олексій Молчановський, Prometheus.org.ua 12

Видалення елементу. Варіант 2

(с) Олексій Молчановський, Prometheus.org.ua 13

Видалення елементу. Варіант 3

(с) Олексій Молчановський, Prometheus.org.ua 14

Бінарні дерева пошуку. Післямова

• Використовуються у різних мовах програмування для реалізаціях багатьох вбудованих структур даних, які потребують активного видалення, додавання та пошуку елементів

• Важко підтримувати збалансованість дерева після кількох операцій додавання/видалення• Існує кілька модифікацій бінарних дерев пошуку, які зберігають

збалансованість дерев: AVL-дерева, червоно-чорні дерева

(с) Олексій Молчановський, Prometheus.org.ua 15