Si para cada nodo de un árbol, el camino más largo desde él hasta un nodo de hoja no es más de dos veces más largo que el más corto, el árbol tiene una coloración rojo-negra.
Aquí hay un algoritmo para descubrir el color de cualquier nodo 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
Aquí n.black-quota
está el número de nodos negros que espera ver yendo a una hoja, desde el nodo n
y n.min-height
es la distancia a la hoja más cercana.
Por razones de brevedad de la notación, dejar que , h ( n ) = y m ( n ) = .b(n)= n.black-quota
h(n)= n.height
m(n)= n.min-height
Teorema: Fijar un árbol binario . Si para cada nodo n ∈ T , h ( n ) ≤ 2 m ( n ) y para el nodo r = raíz ( T ) , b ( r ) ∈ [ 1Tn∈Th(n)≤2m(n)r=root(T)entoncesTtiene una coloración rojo-negra con exactamenteb(r)nodos negros en cada camino desde la raíz hasta la hoja.b(r)∈[12h(r),m(r)]Tb(r)
Prueba: Inducción sobre .b(n)
Verifique que los cuatro árboles de altura uno o dos satisfagan el teorema con .b(n)=1
Por definición de árbol rojo-negro, la raíz es negra. Sea un nodo con un padre negro p tal que b ( p ) ∈ [ 1np. Entoncesb(n)=b(p)-1,h(n)=h(p)-1yh(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
Suponga que el teorema se cumple para todos los árboles con raíz , b ( r ) < b ( q ) .rb(r)<b(q)
Si , entonces n puede ser de color rojo-negro por el supuesto inductivo.b(n)=m(n)n
Si luegob(n)=⌈1b(p)=12h(p). nno satisface el supuesto inductivo y, por lo tanto, debe ser rojo. Seachijo den. h(c)=h(p)-2y b(c)=b(p)-1=1b(n)=⌈12h(n)⌉−1ncnh(c)=h(p)−2. Entoncescpuede ser de color rojo-negro por el supuesto inductivo.b(c)=b(p)−1=12h(p)−1=12h(c)c
Tenga en cuenta que, por el mismo razonamiento, si , entonces tantoncomo un hijo densatisfacen el supuesto inductivo. Por lo tanto,npodría tener cualquier color.b(n)∈(12h(r),m(r))nnn