Si pour chaque nœud d'un arbre, le chemin le plus long de celui-ci vers un nœud feuille n'est pas plus de deux fois plus long que le plus court, l'arbre a une coloration rouge-noir.
Voici un algorithme pour déterminer la couleur de n'importe quel nœud 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
Voici n.black-quota
le nombre de nœuds noirs que vous vous attendez à voir aller à une feuille, à partir du nœud n
et n.min-height
la distance à la feuille la plus proche.
Par souci de concision, notons , h ( n ) = et m ( n ) = .b(n)= n.black-quota
h(n)= n.height
m(n)= n.min-height
Théorème: Correction d' un arbre binaire . Si pour chaque nœud n ∈ T , h ( n ) ≤ 2 m ( n ) et pour le nœud r = racine ( T ) , b ( r ) ∈ [ 1Tn∈Th(n)≤2m(n)r=root(T)puisTa une coloration rouge-noir avec exactementb(r)noeuds noirs sur chaque chemin de la racine à la feuille.b(r)∈[12h(r),m(r)]Tb(r)
Preuve: induction sur .b(n)
Vérifiez que les quatre arbres de hauteur un ou deux satisfont au théorème avec .b(n)=1
Par définition d'arbre rouge-noir, la racine est noire. Soit un nœud avec un parent noir p tel que b ( p ) ∈ [ 1np. Alorsb(n)=b(p)-1,h(n)=h(p)-1eth(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
Supposons que le théorème s'applique à tous les arbres dont la racine , b ( r ) < b ( q ) .rb(r)<b(q)
Si , alors n peut être coloré en rouge-noir par l'hypothèse inductive.b(n)=m(n)n
Si puisb(n)=⌈1b(p)=12h(p). nne satisfait pas l'hypothèse inductive et doit donc être rouge. Soitcun enfant den. h(c)=h(p)-2et b(c)=b(p)-1=1b(n)=⌈12h(n)⌉−1ncnh(c)=h(p)−2. Alorscpeut être coloré en rouge-noir par l'hypothèse inductive.b(c)=b(p)−1=12h(p)−1=12h(c)c
Notons que, par le même raisonnement, si , alorsnet un enfant densatisfont tous deux à l'hypothèse inductive. Par conséquent,npourrait avoir n'importe quelle couleur.b(n)∈(12h(r),m(r))nnn