You are on page 1of 21

ARBOLES ROJO Y NEGRO

Definicin:
Arboles Rojo y Negro
Un rbol rojo-negro es un rbol binario de bsqueda en el que cada nodo
almacena un bit adicional de informacin llamado color, el cual puede ser
rojo o negro.
Cada nodo de un rbol rojo negro contiene la siguiente informacin: color,
clave, hijo izquierdo, hijo derecho y padre. Si un hijo o el padre de un nodo
no existe, el apuntador correspondiente contiene el valor NULO, el cual
consideraremos como un nodo cuyo color es negro.

La raz es negra

Es un rbol de bsqueda estricto

Cada nodo tiene un estado Rojo o Negro

Nodo hoja(NULO) son negros

Un nodo Rojo tiene dos hijos Negros

Todo camino de la raz a cualquier hoja pasa por el


misno nmero de nodos Negros, a esto se le llama
altura Negra
Propiedades:
Los rboles rojo-negro ofrecen un peor caso con tiempo garantizado para la
insercin, el borrado y la bsqueda. No es esto nicamente lo que los hace valiosos
en aplicaciones sensibles al tiempo como las aplicaciones en tiempo real, sino
que adems son apreciados para la construccin de bloques en otras estructuras
de datos que garantizan un peor caso. Por ejemplo, muchas estructuras de datos
usadas en geometra computacional pueden basarse en rboles rojo-negro.
La versin persistente del rbol rojo-negro requiere un espacio O(log n) para cada
insercin o borrado, adems del tiempo.
Ventajas
La insercin comienza aadiendo el nodo como lo haramos en un rbol binario
de bsqueda convencional y pintarlo de rojo. Lo que sucede despus depende del
color de otros nodos cercanos.

Todas las hojas, incluyendo las nulas, son negras, siempre se cumple.

Ambos hijos de cada nodo rojo son negros, est amenazada slo por aadir un
nodo rojo, por repintar un nodo negro de color rojo o por una rotacin.

Todos los caminos desde un nodo dado hasta sus nodos hojas contiene el
mismo nmero de nodos negros, est amenazada slo por repintar un nodo
negro de color rojo o por una rotacin.
Insercin:
Caso 1: caso trivial
Si el padre del nodo insertado es negro, no se realiza ningn ajuste (el rbol es
correcto).
Caso 1:
Caso 2:
Caso 1: caso raiz
El nuevo nodo n es la raz del rbol. En este caso, es repintado a color negro para
satisfacer la propiedad de la raz es negra. Como esto aade un nodo negro a
cada camino todos los caminos desde un nodo dado a sus hojas contiene el mismo
nmero de nodos negros, la altura negra se mantiene.
Caso 3: To rojo, nodo x izquierdo o derecho.

Solucin: Se cambia de color a los nodos y, z y t. Puede darse el problema de
que el padre de z sea rojo y se viole de nuevo la primera condicin
Iteracin siguiente: El nodo que se comprueba ahora es z.
Caso 3:
Caso 4:
Caso 4: Tio negro, nodo x es hijo derecho.
Solucin: Se efecta una rotacin x-y. Esto no resuelve el problema, pero
hace que ahora el nodo que hay que comprobar sea un hijo izquierdo y por lo
tanto se aplique el caso siguiente.
Iteracin siguiente: El nodo que se comprueba ahora es y. Se caer en el
Caso 5
Caso 5: To negro, nodo x es hijo izquierdo.

Solucin: Se efecta una rotacin z-y, se cambia de color a z e y. Esto
resuelve el problema.
Iteracin siguiente: El rbol cumple las condiciones. Se termina el bucle.
Caso 5:
En un rbol binario de bsqueda normal, cuando se borra un nodo con dos
nodos internos como hijos, tomamos el mximo elemento del subrbol izquierdo
o el mnimo del subrbol derecho, y movemos su valor al nodo que es borrado.
Borramos entonces el nodo del que copibamos el valor que debe tener menos de
dos nodos no hojas por hijos. Copiar un valor no viola ninguna de las propiedades
rojo-negro y reduce el problema de borrar en general al de borrar un nodo con
como mucho un hijo no hoja. No importa si este nodo es el nodo que queramos
originalmente borrar o el nodo del que copiamos el valor.
Eliminacin
Nodo borrado es rojo
Casos triviales
El nodo a borrar es rojo y tiene un solo hijo y es negro. Se redirecciona
el hijo al abuelo y sigue siendo rbol rojo-negro
El hijo, x, es rojo
En este caso se incumple la condicin de que los hijos de z tengan la
misma altura negra. Cambiando el color de x a negro se restablece la
condicin.
Solucin: Se hace una rotacin padre-hermano y se cambian sus
colores. Ahora su padre es rojo y por lo tanto caer en alguno de los
siguientes casos (dependiendo del color
de a): Caso 3, 4 o 5.
Caso 1
Hermano rojo, padre negro
Iteracin siguiente: Se vuelve a comprobar con los mismo nodos x y z,
se garantiza que no se cae en ste caso.
Caso 2
Hermano negro no nulo, sobrinos negros, padre negro
Solucin: Se cambia el color del hermano (y) a rojo. Con ello los nodos x e
y pasan a tener la misma altura negra. El problema es que la altura de z ha
disminuido.
Iteracin siguiente: Se vuelve a comprobar, ahora el nodo llamado x es el
nodo z y el nodo llamado z es el padre de z. Nota: Si z es la raz el rbol
cumple todas las condiciones y se termina el bucle.
Caso 3
Hermano negro no nulo, sobrinos negros, padre rojo
Solucin: Se cambia el color del hermano (y) a rojo y el del padre (z) a negro.
Con ello los nodos x e y pasan a tener la misma altura negra. La altura de z
sigue siendo la misma.
Iteracin siguiente: El rbol ya cumple todas las condiciones. Se termina el bucle
Caso 4
Hermano negro no nulo, sobrinos rojo/negro, padre cualquier color
Solucin: Se realiza una rotacin hermano-sobrino izquierdo y se cambian sus
colores. Los hijos del sobrino izquierdo existen (aunque pueden ser nulos) y
son negros, ya que el sobrino izquierdo es rojo. El nodo x pasa a tener como
hermano al nodo a y sigue teniendo una altura negra menor en uno que la de
su hermano.
Iteracin siguiente: Se vuelve a comprobar con los mismo nodos x y z, se
caer en el caso 5 ya que el hermano sigue siendo negro y los sobrinos son
negro y rojo
Caso 5
Hermano negro no nulo, sobrinos cualquiera/rojo, padre cualquier color
Solucin: Se realiza una rotacin padre-hermano y se cambia el color de la
siguiente forma: El padre (z) pasa a ser negro, el hermano (y) toma el mismo color
que el que tena originalmente z, el sobrino derecho pasa de rojo a negro (este
sobrino deba existir ya que era rojo).
Iteracin siguiente: El rbol ya cumple todas las condiciones. Se termina el ajuste
Caso 5
Hermano negro no nulo, sobrinos cualquiera/rojo, padre cualquier color
Gracias por su atencin
Monica P. Sandoval 1150351
Weissman A. Robayo 1150462
17 de Junio 2013