Якщо для кожного вузла дерева найдовший шлях від нього до листяного вузла не більше ніж удвічі довший, ніж найкоротший, дерево має червоно-чорне забарвлення.
Ось алгоритм для визначення кольору будь-якого вузла n
if n is root,
n.color = black
n.black-quota = height n / 2, rounded up.
else if n.parent is red,
n.color = black
n.black-quota = n.parent.black-quota.
else (n.parent is black)
if n.min-height < n.parent.black-quota, then
error "shortest path was too short"
else if n.min-height = n.parent.black-quota then
n.color = black
else (n.min-height > n.parent.black-quota)
n.color = red
either way,
n.black-quota = n.parent.black-quota - 1
Ось n.black-quota
кількість чорних вузлів, які ви очікуєте побачити, переходячи до листочка, від вузла, n
і n.min-height
це відстань до найближчого аркуша.
Для стислості позначення нехай , h ( n ) = і m ( n ) = .b ( n ) = n.black-quota
h ( n ) = n.height
m ( n ) = n.min-height
Теорема: Фікс бінарного дерева . Якщо для кожного вузла n ∈ T , h ( n ) ≤ 2 м ( n ) і для вузла r = корінь ( T ) , b ( r ) ∈ [ 1Тn ∈ Th ( n ) ≤ 2 м ( n )r = корінь ( T)тодіTмає червоно-чорне забарвлення з точноб(r)чорними вузлами на кожному шляху від кореня до листя.b ( r ) ∈ [ 12h(r),m(r)]Tb(r)
Доведення: індукція над .b(n)
Перевірте, що всі чотири дерева висотою одне чи два задовольняють теоремі з .b(n)=1
За визначенням червоно-чорного дерева, корінь чорний. Нехай - вузол із чорним батьківським p таким, що b ( p ) ∈ [ 1np. Тодіb(n)=b(p)-1,h(n)=h(p)-1іh(n)≥m(n)≥m(p)-1.b(p)∈[12h(p),m(p)]b(n)=b(p)−1h(n)=h(p)−1h(n)≥m(n)≥m(p)−1
Припустимо, теорема справедлива для всіх дерев з коренем , b ( r ) < b ( q ) .rb(r)<b(q)
Якщо , то n може бути червоно-чорним кольором за індуктивним припущенням.b(n)=m(n)n
Якщо тоb(n)=⌈1b(p)=12h(p). nне задовольняє індуктивне припущення і тому повинно бути червоним. НехайĈбути дитиноюп. h(c)=h(p)-2і b(c)=b(p)-1=1b(n)=⌈12h(n)⌉−1ncnh(c)=h(p)−2. Тодіcможе бути червоно-чорним кольором за індуктивним припущенням.b(c)=b(p)−1=12h(p)−1=12h(c)c
Зауважимо, що тим самим міркуванням, якщо , тоді іn,і дитинаnвідповідають задоволенню індуктивного припущення. Томуnможе мати будь-який колір.b(n)∈(12h(r),m(r))nnn