Explicación puntual de lo que es un Arbol Binario de tipo Red Black
Fuente:
http://ingsistemas.ufps.edu.co/SEED/arbolrojinegro.html
http://www.ica.luz.edu.ve/eda/guias/rojonegros.pdf
1. Árbol binario Rojo-Negro
República Bolivariana de Venezuela
Ministerio del Poder Popular para la Defensa
Ministerio del Poder Popular para la Educación Superior
Universidad Nacional Experimental de la Fuerza Armada
Mérida Núcleo Mérida
Integrantes:
Asuaje Katherine V.-20.151.987
Duque Antony V.-24.552.503
Rosas Francisco V.-25.916.407
Villamizar Miguel V.-23.442.804
2. Árbol binario Rojo-Negro
Es un árbol de búsqueda, en el que cada nodo almacena un bit
adicional de información llamado color, el cual puede ser rojo o
negro.
Cada nodo de un árbol rojo negro contiene:
color, información, 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.
Los árboles rojo negros es un tipo de árbol que están balanceados de
tal manera que el tiempo de realizar operaciones sea O(log n) en el
peor de los casos.
3. Propiedades
Todo árbol rojo-negro satisface las siguientes propiedades:
Todo nodo es rojo o negro.
La raíz es negra.
Toda hoja (NULO) es negra.
Un nodo es rojo cuando sus dos hijos son negros.
En un camino, no puede haber más de dos nodos rojos consecutivos, pero sí
pueden haber n nodos negros consecutivos. Esto significa que un nodo rojo no
puede tener ningún hijo rojo.
Para cada nodo, todas las rutas de un nodo a las hojas (NULOS) contienen el
mismo número de nodos negros. El número de nodos negros en esta ruta se
conoce como ALTURA-NEGRA del nodo.
Búsqueda
Se hace de igual manera que en un árbol
binario de búsqueda.
4. Terminología (ALTURA NEGRA )
Altura negra de un árbol: la altura negra de su raíz.
Altura 1
Altura 2
Altura 3
Altura 1
Altura 2
Altura 3
5. Ventajas
Todas las operaciones son O(log n).
Se mantienen mas balanceados que otras
estructuras.
Permite organizar un listado de números de
manera sencilla.
Desventajas
Su costo espacial es mayor que el de
otros arboles por el uso de nodos
centinelas.
Rotación
Para conservar las propiedades que debe cumplir
todo árbol rojo-negro, en ciertos casos de la inserción y
la eliminación será necesario reestructurar el árbol, si
bien no debe perderse la ordenación relativa de los
nodos. Para ello, se llevan a cabo una o varias
rotaciones, que no son más que reestructuraciones en
las relaciones padre-hijo-tío nieto.
6. Eliminación y casosInserción y casos
La inserción se hace como en un árbol
binario de búsqueda.
Al hacer una eliminación también es
necesario hacer rotaciones y cambios de
color según los casos que se especificaran
después.
Casos de inserción:
1. El padre del nodo es de color negro.
2. El padre del nodo es la raíz del árbol y es de
color rojo: Se resuelve cambiando de color la
raíz.
3. El padre del nodo es rojo y no es la raíz.
Existen 3 sub-casos:
3.1.-El tío del nodo también es rojo: Se resuelve
cambiando los colores del padre, del tío y del
abuelo.
3.2.-Se resuelve cambiando los colores del
padre, del tío y del abuelo: Se resuelve con una
rotación simple a la derecha del abuelo.
3.3.-El tío del nodo es negro, y X es hijo derecho:
Se resuelve con una rotación simple a izquierda
del padre, en este punto, se resuelve como en el
caso anterior.
Casos de eliminación:
1. el nodo es una hoja, se elimina fácilmente.
2. El nodo hermano y sus dos hijos son negros: el
negro adicional se mueve arriba del árbol.
3. El nodo tiene dos hijos, nos encontramos con el
sucesor que lo sustituirá. El Sucesor es el nodo mas
a la izquierda en el subárbol derecho - lo
cambiamos y procedemos al borrado esto tiene
como máximo un hijo y lo podemos borrar.
4. Nodo hermano y su hijo más cercano al nodo es
de color negro, el otro es de color rojo: Al cambiar
el color de algunos y la rotación que podemos
sacar el extra negro.
5. El nodo tiene un hijo hoja, cambia el nodo por el
hijo y se borra.