Arboles Rojo Negro Un rbol rojo-negro es un tipo abstracto de datos. Concretamente, es un rbol binario de bsqueda equilibrado. Es complejo, pero tiene un buen peor caso de tiempo de ejecucin para sus operaciones y es eficiente en la prctica. Puede buscar, insertar y borrar en un tiempo O(log n), donde n es el nmero de elementos del rbol. Cada nodo tiene un atributo de color cuyo valor es rojo o negro. En adelante, se dice que un nodo es rojo o negro haciendo referencia a dicho atributo. El camino ms largo desde la raz hasta una hoja no es ms largo que dos veces el camino ms corto desde la raz a una hoja. El resultado es que dicho rbol est aproximadamente equilibrado. Dos nodos rojos no pueden ser consecutivos en un mismo camino Propiedades Adems de los requisitos impuestos a los rboles binarios de bsqueda convencionales, se deben satisfacer las siguientes reglas para tener un rbol rojo-negro vlido: Todo nodo es o bien rojo o bien negro. La raz es negra. Todas las hojas (null) son negras. Todo nodo rojo debe tener dos nodos hijos negros. Cada camino desde un nodo dado a sus hojas descendientes contiene el mismo nmero de nodos negros.
Rotacin Para conservar las propiedades de un rbol rojo-negro, se llevan a cabo unas o varias rotaciones. Rotar Izquierda
Rotar Derecha
Bsqueda La bsqueda consiste acceder a la raz del rbol y comparar su valor con el valor buscado. Si el elemento a localizar coincide con el de la raz, la bsqueda ha concluido con xito. Si el elemento es menor, se busca en el subrbol izquierdo; si es mayor, en el derecho. Si se alcanza un nodo hoja y el elemento no ha sido encontrado se supone que no existe en el rbol. Puede ser iterativa o recursiva. Insercin 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 su rbol es el padre de x, cuyo hijo izquierdo es x e hijo derecho el abuelo de x. Insercin Requiere consideraciones adicionales a las de un rbol binario comn el proceso de bajas utiliza una estructura especial llamada centinela estas es un objeto con la misma estructura de un nodo del rbol y siempre es de color negro. En lugar de que los apuntadores nulos sean null estos apuntaran al centinela.