Page 1
Розробка та аналіз алгоритмів
11. Бінарні дерева пошуку
• Мотивація. Означення
• Обхід дерева. Пошук елементів
• Додавання/видалення елементів
(с) Олексій Молчановський, Prometheus.org.ua 1
Page 2
Динамічні структури
(с) Олексій Молчановський, Prometheus.org.ua 2
Page 3
Означення бінарного дерева пошуку
(с) Олексій Молчановський, Prometheus.org.ua 3
Page 4
Збалансоване бінарне дерево пошуку
(с) Олексій Молчановський, Prometheus.org.ua 4
Page 5
Пошук елементу в дереві
(с) Олексій Молчановський, Prometheus.org.ua 5
Page 6
Пошук елементу в дереві
(с) Олексій Молчановський, Prometheus.org.ua 6
Page 7
Пошук мінімального/максимального елементів
(с) Олексій Молчановський, Prometheus.org.ua 7
Page 8
Обхід дерева у відсортованому порядку
(с) Олексій Молчановський, Prometheus.org.ua 8
Page 9
Обхід дерева у відсортованому порядку
(с) Олексій Молчановський, Prometheus.org.ua 9
Page 10
Пошук попереднього/наступного елементів
(с) Олексій Молчановський, Prometheus.org.ua 10
Page 11
Додавання елементу
(с) Олексій Молчановський, Prometheus.org.ua 11
Page 12
Видалення елементу. Варіант 1
(с) Олексій Молчановський, Prometheus.org.ua 12
Page 13
Видалення елементу. Варіант 2
(с) Олексій Молчановський, Prometheus.org.ua 13
Page 14
Видалення елементу. Варіант 3
(с) Олексій Молчановський, Prometheus.org.ua 14
Page 15
Бінарні дерева пошуку. Післямова
• Використовуються у різних мовах програмування для реалізаціях багатьох вбудованих структур даних, які потребують активного видалення, додавання та пошуку елементів
• Важко підтримувати збалансованість дерева після кількох операцій додавання/видалення• Існує кілька модифікацій бінарних дерев пошуку, які зберігають
збалансованість дерев: AVL-дерева, червоно-чорні дерева
(с) Олексій Молчановський, Prometheus.org.ua 15