Действительно, это красочно. Красное черное дерево всегда должно следовать этим правилам:
Каждый узел имеет красный или черный цвет.
Корень дерева всегда черный.
Нет двух смежных красных узлов (красный узел не может иметь красного родителя или красного ребенка).
Каждый путь от корня до пустого узла имеет одинаковое количество черных узлов.
Дерево не может быть окрашено, потому что и 2-синий, и 3-синий должны быть красного цвета, что нарушает правило 3.
Путь от корня до самого дальнего листа не более чем в два раза
Пока путь от корня до ближайшего листа.
Это не совсем требование, а общее свойство RB Trees. Пропустив математическое доказательство, рассмотрим дерево, в котором на одной ветви у вас есть только черные узлы, а на другой ветви чередуются красные и черные узлы. В этой ситуации у вас максимальный дисбаланс, если это не так, по крайней мере одно из вышеуказанных правил нарушено.
Теоретически у вас есть 2 типа высоты в дереве РБ:
- Высота черного , которая является общей для всех веток вашего дерева (в противном случае нарушается правило 4)
- «Общая высота» (это не существующий термин), который представляет собой максимальное количество красных узлов + черных узлов на одном пути от корня до NIL.