Я ничего не наблюдал, кроме лекций CS о красных черных деревьях, и каждый, когда подсчитывает черную высоту дерева, считает NULL
Узлы черными. Зачем даже беспокоиться? Например, следующее дерево:Красные Черные Деревья - Так как у каждого листа есть два нулевых ребенка, зачем даже звонить этим черным?
Если бы я спросил вас, что черная высота этого дерева, вы сказали бы три. Но, если я сбрил все узлы NULL
(потому что они подразумеваются) и снова спросил вас, вы бы сказали два. Действительно ли это имеет значение? Я знаю, что некоторые алгоритмы, как в случае вставки, где вы должны проверить, если Uncle
является Black
, но можно было бы написать, что в коде, как следующее:
Node *uncle = uncle(child);
if (uncle == NULL || uncle->color == BLACK)
Вы не должны написать
if (uncle->color == BLACK)
Так если это не имеет значения при просмотре дерева и в коде, мы должны отдельно определить NULL
от цвета, почему даже называть их одним и тем же для начала?