Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Data Structures and Algorithms in C++ 2e (На ру...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2.37 Mб
Скачать

10.5. Красно-черные деревья 485

Из вышеупомянутого описания алгоритма мы видим, что для обновления дерева было нужно

после того, как удаление вовлекает восходящий марш в дерево T, выполняя самое большее постоянный объем работы (в реструктуризации, переокраске или регулировании) за узел. Таким образом начиная с любых изменений мы делаем в узле в T во время этого, вверх идут, берет O (1) время (потому что это затрагивает постоянное число узлов), у нас есть следующий.

Суждение 10.11: алгоритм для удаления входа от красно-черного дерева с n записями берет O (зарегистрируйте n), время и выступает, O (зарегистрируйте n), recolorings и самое большее одно регулирование плюс одна дополнительная реструктуризация trinode. Таким образом это выступает самое большее два, реструктурируют операции.

10.37 В цифрах и 10.38, мы показываем последовательность операций по удалению на красно-черном дереве. Мы иллюстрируем Случай 1 restructurings в рисунке 10.37 (c) и (d). Мы иллюстрируем Случай 2 recolorings в нескольких местах 10.37 в цифрах и 10.38. Наконец, в рисунке 10.38 (i) и (j), мы показываем пример Случая 3 регулирования.

(a) (b)

(c) (d)

Рисунок 10.37: Последовательность удалений из красно-черного дерева: (a) начальное дерево; (b) пере - moval 3; (c) удаление 12, вызывая двойного черного (обработанный, реструктурируя); (d) после реструктуризации. (Продолжается в рисунке 10.38.)

486 Глава 10. Деревья поиска

(e) (f)

(g) (h)

(i) (j)

(k)

Рисунок 10.38: Последовательность удалений в красно-черном дереве: (e) удаление 17; (f) пере - moval 18, вызывая двойного черного (обработанный, повторно окрашивая); (g) после переокраски; (h) удаление 15; (i) удаление 16, вызывая двойного черного (обработанный тем, чтобы приспосабливать - ment); (j) после регулирования двойные черные потребности, которые будут обработаны переокраской; (k) после переокраски. (Продолженный от рисунка 10.37.)

10.5. Красно-черные деревья 487

Исполнение Красно-черных деревьев

Таблица 10.4 суммирует продолжительность главных операций реализованной карты

посредством красно-черного дерева. Мы иллюстрируем оправдание за эти границы в рисунке 10.39.

Операция Время

размер, пустой O (1) находят, вставляют, стирают O (регистрируют n),

Таблица 10.4: Исполнение карты n-входа, понятой красно-черным деревом. Космическое использование - O (n).

Рисунок 10.39: продолжительность поисков и обновлений в красно-черном дереве. Работа времени - O (1) за уровень, в который врываются вниз фаза, которая, как правило, включает поиск, и фаза, которая, как правило, включает recolorings и за - формирование местного trinode restructurings (вращения).

Таким образом красно-черное дерево достигает логарифмической продолжительности худшего случая и для поиска и для обновления в карте. Красно-черная структура данных дерева немного более сложна, чем ее передача (2, 4) дерево. Несмотря на это, у красно-черного дерева есть концептуальное преимущество, что только постоянное число trinode restructurings когда-либо необходимо, чтобы восстановить баланс в красно-черном дереве после обновления.