Jeśli dla każdego węzła drzewa najdłuższa ścieżka od niego do węzła liścia jest nie więcej niż dwa razy dłuższa niż najkrótsza, drzewo ma czerwono-czarne zabarwienie.
Oto algorytm określający kolor dowolnego węzła 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
Oto n.black-quota
liczba czarnych węzłów, których oczekujesz, że dojdą do liścia, od węzła, n
i n.min-height
odległość do najbliższego liścia.
Dla zwięzłości zapisu niech , h ( n ) = i m ( n ) = .b(n)= n.black-quota
h(n)= n.height
m(n)= n.min-height
Twierdzenie: Fix binarnego drzewa . Jeżeli dla każdego węzła n ∈ T , h ( n ) ≤ 2 m ( n ) i dla węzła r = pierwiastek ( T ) , b ( r ) ∈ [ 1Tn∈Th(n)≤2m(n)r=root(T)a następnieTma czerwono-czarne zabarwienie z dokładnieb(r)czarnymi węzłami na każdej ścieżce od korzenia do liścia.b(r)∈[12h(r),m(r)]Tb(r)
Dowód: indukcja powyżej .b(n)
Sprawdź, czy wszystkie cztery drzewa wysokości jednego lub dwóch spełniają twierdzenie .b(n)=1
Z definicji drzewa czerwono-czarnego korzeń jest czarny. Niech będzie węzłem z czarnym rodzicem p takim, że b ( p ) ∈ [ 1np. Następnieb(n)=b(p)-1,h(n)=h(p)-1orazh(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
Załóżmy, że twierdzenie to obowiązuje dla wszystkich drzew o korzeniu , b ( r ) < b ( q ) .rb(r)<b(q)
Jeśli , to n może być zabarwione na czerwono-czarny kolor przez założenie indukcyjne.b(n)=m(n)n
Jeśli a następnieb(n)=⌈1b(p)=12h(p). nnie spełnia założenia indukcyjnego i dlatego musi być czerwony. Niechcbędzie dzieckiemn. h(c)=h(p)-2oraz b(c)=b(p)-1=1b(n)=⌈12h(n)⌉−1ncnh(c)=h(p)−2. Wtedycmoże być czerwono-czarne według założenia indukcyjnego.b(c)=b(p)−1=12h(p)−1=12h(c)c
Zauważ, że z tego samego powodu, jeżeli , a następnie zarównon,jaki dzieckonspełniają założenie indukcyjne. Dlategonmoże mieć dowolny kolor.b(n)∈(12h(r),m(r))nnn