2012-03-18 4 views
0

Я видел аналогичный вопрос here на stackoverflow, но на него не ответил (четко).Можно ли рисовать дерево RB с 8 черными узлами и 12 красными узлами?

Я могу попытаться построить такое дерево (8 черных узлов и 12 красных узлов), не опуская ни одного из 5 деревьев RB (пока я не смог это сделать);

  1. Узел красный или черный
  2. Корень черный
  3. Все листья черные
  4. И дети каждого красного узла являются черными
  5. Каждый простой путь от данного узла к любому его потомков оставляет одно и то же количество черного носа.

Но я действительно заинтересован в более элегантном ответе (кроме попытки проверить, работает ли он).

Отредактировано: В случае, когда листья считаются черными, очевидно, что такое дерево невозможно построить. Но как насчет того, чтобы листья не учитывались как черные узлы (8 нелистовых узлов)

ответ

0

Из правил 3 и 4 следует, что не может быть больше красных, чем черных узлов, поскольку добавление красных узлов к дереву обязательно добавляет черные узлы. Это если вы считаете листья дерева rb узлами (ваши определения).

+0

Спасибо за ваш ответ, я отредактировал мой вопрос, чтобы сделать его более ясным. Меня больше беспокоит случай, когда листья (нулевые указатели) не учитываются в 8 черных узлах –