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

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

(a) (b)

(c) (d)

Рисунок 10.26: размножающаяся последовательность сплавов в (2, 4) дерево: (a) удаление 14, который вызывает underflow; (b) сплав, который вызывает другой underflow; (c) вторая операция по сплаву, которая заставляет корень быть удаленным; (d) заключительное дерево.

Исполнение (2, 4) деревья

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

с (2, 4) дерево. Анализ сложности времени основан на следующем:

• Высота (2, 4) дерево, хранящее n записи, является O (зарегистрируйте n), Суждением 10.8

• Разделение, передача или операция по сплаву берут O (1) время • Поиск, вставка или удаление входа посещают O (зарегистрируйте n), узлы.

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

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

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

Таким образом, (2, 4) деревья предусматривают быстрый поиск карты и обновляют операции. (2, 4) у деревьев также есть интересные отношения к структуре данных, которую мы обсуждаем затем.

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

10.5 Красно-черные Деревья

Хотя деревья AVL и (2, 4) у деревьев есть много хороших свойств, есть некоторые приложения карты, для которых они не хорошо подходят. Например, деревья AVL могут потребовать, чтобы многие реструктурировали операции (вращения), которые будут выполнены после пере - moval, и (2, 4), деревья могут потребовать многого плавления или разделить операции, которые будут выполнены или после вставки или после удаления. У структуры данных, которую мы обсуждаем в этой секции, красно-черном дереве, нет этих недостатков, однако, поскольку это требует, чтобы только O (1) структурные изменения были внесены после обновления, чтобы остаться уравновешенными.

Красно-черное дерево - дерево двоичного поиска (см. Раздел 10.1) с узлами, окрашенными в красный и черный цвет в пути, который удовлетворяет следующие свойства:

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

число темнокожих предков минус один. (Вспомните, что узел - предок себя.)

Пример красно-черного дерева показывают в рисунке 10.27.

Рисунок 10.27: Красно-черное дерево связалось с (2, 4) дерево рисунка 10.21. У каждого внешнего узла этого красно-черного дерева есть 4 темнокожих предка (включая себя); следовательно, у этого есть черная глубина 3. Мы используем цвет, синий вместо красного. Кроме того, мы используем соглашение предоставления края дерева тот же самый цвет как детский узел.

Что касается предыдущих типов деревьев поиска, мы предполагаем, что записи сохранены во внутренних узлах красно-черного дерева с внешними узлами, являющимися пустым placehold-ers. Кроме того, мы предполагаем, что внешние узлы - фактические узлы, но мы отмечаем, что за счет немного более сложных методов внешние узлы могли быть пустыми.

474