Дети в красном / черном дереве?
Согласно этому объяснению красного черного дерева, дерево должно иметь следующие свойства:
- Узел красный или черный.
- Корень черный. (Это правило иногда опускается. Поскольку корень всегда можно изменить с красного на черный, но не обязательно наоборот, это правило мало влияет на анализ.)
- Все листья (ноль) черные. (Все листья одного цвета с корнем.)
- Оба потомка каждого красного узла черные.
- Каждый простой путь от данного узла к любому из его дочерних листьев содержит одинаковое количество черных узлов.
Что мешает кому-то сделать каждый узел черным?
2 ответа
Это возможно. Но для поддержания условия 5 иногда вам может потребоваться покрасить узел в КРАСНЫЙ.
Например, рассмотрим следующий пример.
a
/ \
b c
Здесь все узлы могут быть ЧЕРНЫМИ
Теперь, если вы хотите вставить новый узел, какой цвет вы выберете? RED. если вы выберете черный цвет, условие 5 не будет выполнено. Таким образом, вы можете продолжать вставлять КРАСНЫЕ узлы, если ни одно из условий (1-4) не нарушено
Последнее правило, которое вы процитировали: "Каждый простой путь от данного узла к любому из его дочерних листьев содержит одинаковое количество черных узлов".
Если все узлы черные, то путь от корня к любому листу должен содержать одинаковое количество узлов. Другими словами, все листья находятся на одной глубине - так что это возможно только для идеального бинарного дерева.