Está en la página 1de 3

RBOL ROJO-NEGRO

DESCRIPCIN Fueron inventados por R. Bayer el cul los llamo rboles simtricos binarios. El rbol rojo-negro es un rbol binario donde cada nodo tiene tambin un atributo de color, cuyo valor puede ser o rojo o negro. Los hijos de un nodo en un rbol Rojo-Negro son de dos tipos: rojos y negros. PROPIEDADES La raz del rbol es negra. Los hijos de un nodo rojo son negros. Las hojas del rbol son negras. Todas las ramas del rbol (caminos desde la raz hasta una hoja) tienen el mismo nmero de nodos negros. Ningn camino desde la raz a las hojas tiene dos o ms hijos rojos consecutivos. Cada camino desde la raz hasta las hojas tiene el mismo nmero de hijos negros (esto es debido a que todos los nodos externos en un rbol 2-3-4 estn en el mismo nivel y los hijos negros representan los hijos originales) La estructura del rbol rojo-negro fue desarrollada para soportar objetos de cualquier tipo, siempre que la clase a la que pertenecen implemente la interface comparable necesaria para la insercin de los elementos de forma ordenada.

ROTACIN. Las operaciones INSERTA y ELIMINA de un rbol Rojo-Negro modifican la estructura de este y pueden violar las propiedades de los mismos antes mencionadas, por lo cual es necesario restablecerlas lo que implicara cambiar el color de algunos nodos.

TIPOS DE ROTACIN. Rotacin Izquierda: Cuando realizamos una rotacin izquierda a un nodo x, asumimos que su hijo derecho no es nulo. Rotacin Derecha: Cuando realizamos una rotacin derecha a un nodo Y, asumimos que su hijo izquierdo no es nulo.

CENTINELA

El centinela es un modo auxiliar que nos ayudar para el proceso de eliminacin de un nodo, al insertar un nuevo ambos hijos debern apuntar al sentinela, el sentinela ser de color negro y no guardar ningn dato, ste se declarar dentro de la clase rbol. INSERTAR Un rbol Rojo-Negro es un rbol binario, por lo tanto una insercin en este se har de la misma forma que en un binario, pero el nodo a insertar ser siempre rojo. Posteriormente se reajustan las propiedades del mismo. Al momento de hacer la insercin, los apuntadores derecho e izquierdo del nuevo nodo son apuntados hacia el centinela . Existen tres casos para la insercin de un nuevo nodo. Caso 1: El to de x es Rojo.

Como el abuelo de x es negro, se colorea al padre y al to de x de Negro y de Rojo al abuelo. Caso 2: El to de x es Negro y x es hijo derecho.

Se usa una rotacin a la izquierda para llevarlo al caso tres, en el que x es hijo izquierdo Caso 3: El to de x es Negro y x es hijo izquierdo.

Como x y su padre son rojos, se hace una rotacin derecha, para colorear al padre de x de negro y al abuelo de x de rojo, de modo que la nueva raz del subrbol es el padre de x, cuyo hijo izquierdo es x e hijo derecho el abuelo de x. ELIMINAR La eliminacin de un nodo en un rbol rojo-negro con n elementos puede realizarse en un tiempo O(lg n). Utilizamos una versin modificada de la rutina de eliminacin en un rbol binario de bsqueda ordinario. Puede observarse que es casi igual a la rutina de eliminacin en un rbol binario de bsqueda normal. Podemos asumir que borramos un nodo con como mucho un hijo no hoja (si solo tiene nodos hoja por hijos, tomaremos uno de ellos como su hijo). Si borramos un nodo rojo podemos simplemente reemplazarlo con su hijo que debe ser negro. Todos los caminos hasta el nodo borrar simplemente pasar a travs de un nodo rojo menos y ambos el padre borrado y el hijo, han de ser negros (as las propiedades todas las hojas incluyendo las nulas son negras).