Следующая статья является продолжением статьи, обсуждаемой здесь .
При вставке дерева AVL мы использовали вращение как инструмент для балансировки после того, как вставка вызвала дисбаланс. В красно-черном дереве мы используем два инструмента для балансировки.
1) Перекраска
2) Вращение
Сначала мы пытаемся перекрасить, если перекраска не работает, тогда мы идем на ротацию. Ниже приводится подробный алгоритм. Алгоритмы имеют в основном два случая в зависимости от цвета дяди. Если дядя красный, мы делаем перекрашивание. Если дядя черный, мы делаем вращения и / или перекрашиваем.
Цвет узла NULL считается ЧЕРНЫМ.
Позвольте x быть недавно вставленным узлом.
1) Выполните стандартную вставку BST и сделайте цвет вновь вставленных узлов красным.
2) Если x — корень, измените цвет x на ЧЕРНЫЙ (высота черного дерева целиком увеличивается на 1).
3) Выполните следующие действия, если цвет родительского элемента x не ЧЕРНЫЙ или x не является корневым.
…. а) Если дядя х красный ( красный родитель должен быть черным из свойства 4 )
……. (I) Измените цвет родителя и дяди на ЧЕРНЫЙ.
…… .. (ii) цвет прародителя как красный.
…… .. (iii) Измените прародителя x = x, повторите шаги 2 и 3 для нового x.
…. б) Если дядя х черный , то может быть четыре конфигурации для х, родителя х ( р ) и прародителя х ( г ) (это похоже на дерево AVL )
…… .. i) Левый левый регистр (p — левый потомок g, а x — левый потомок p)
…… .. б) Левый Правый случай (р левый ребенок г и х прав ребенка р)
…… .. iii) Правый правый случай (Зеркало случая а)
…… .. iv) Правый левый кейс (Зеркало кейса c)
Ниже приведены операции, которые должны быть выполнены в четырех случаях, когда дядя ЧЕРНЫЙ.
Все четыре случая, когда дядя ЧЕРНЫЙ
Левый левый корпус (см. G, p и x)
Левый и правый регистр (см. G, p и x)
Правый правый регистр (см. G, p и x)
Правый левый регистр (см. G, p и x)
Примеры вставки

Ниже приведен код C ++.
|
Выход:
Inoder Traversal of Created Tree 1 2 3 4 5 6 7 Level Order Traversal of Created Tree 6 4 7 2 5 1 3
Эта статья предоставлена Мохсином Мохаммаадом . Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по обсуждаемой теме
Рекомендуемые посты:
- Левый Падающий Красный Черное Дерево (Вставка)
- Красно-Черные Деревья | Вставка сверху вниз
- Проверьте, сбалансировано ли данное Двоичное Дерево как Красно-Черное Дерево
- Красно-Черное Дерево | Набор 3 (Удалить)
- Красно-Черное Дерево | Комплект 2 (Вставка)
- Красно-Черное Дерево | Комплект 1 (Введение)
- Red Black Tree против AVL Tree
- AVL Tree | Набор 1 (вставка)
- Бинарное дерево с резьбой | вставка
- Дерево козла отпущения | Комплект 1 (Введение и вставка)
- Оптимальная последовательность для вставки дерева AVL (без каких-либо поворотов)
- Двоичное дерево поиска | Набор 1 (поиск и вставка)
- Программа для проверки, является ли двоичное дерево BST или нет
- Максимальная сумма поддерева в двоичном дереве, так что поддерево также является BST
- Преобразование двоичного дерева в двоичное дерево поиска
0.00 (0%) 0 votes