La estructura original fue creada por Rudolf Bayer en 1972, que le dio el nombre de árboles-B binarios simétricos, pero tomó su nombre moderno en un trabajo de Leo J. Guibas y Robert Sedgewick realizado en 1978.
Los árboles rojo-negro son un subtipo de árbol binario de búsqueda en el que cada nodo tiene un atributo de color cuyo valor es rojo o negro.
Garantiza un tiempo de ejecución de \(O(logn)\), donde n es el número total de elementos en el árbol.
PROPIEDADES.
Un nodo es Rojo o Negro.
La raíz siempre es negra.
Un nodo Rojo siempre tendrá hijos negros (Un apuntador Null se tomará en consideración para hacer referencia a un nodo Negro).
El número de nodos negros es el mismo en cualquier camino que vaya de la raíz a la hoja.
EJEMPLO GRAFICO.
ROTACIONES.
Las rotaciones son necesarias para que cumpla las propiedades de un árbol rojo-negro, ya que en los casos como inserción y eliminación, al final hay ocasiones que se necesita restructurar el árbol, por lo cual existen la rotación:
• La Rotación izquierda.
• La Rotación derecha.
Es la misma rotación que ocupan los arboles binarios de búsqueda.ALTURA DE UN NODO.
- Altura de un nodo(h): el número de bordes en el camino más largo a una hoja.
- Altura de un nodo negro(bh): es igual a la altura del nodo cuando sólo se tienen en cuenta los nodos negros (incluida la hoja) del subárbol cuya raíz es el nodo.
OPERACIONES.
Como un árbol rojo-negro con \(n\) claves es un árbol binario de búsqueda de altura \(O(logn)\),entonces las operaciones de búsqueda:
Búsqueda
Mínimo
Máximo
Predecesor
Sucesor
BORRAR.
CASO N°1
BORRAR.
CASO N°2
• Nodo a Negro con hermano rojo (nodo d)
• A hermano se le pinta negro (nodo d), a padre de rojo (nodo b) y rotar a la izquierda.
BORRAR.
CASO N°3
• Un nodo a y hermano negro (nodo d), el hijo derecho de hermano negro (nodo e) y el izquierdo rojo.
• Al hijo izquierdo del hermano (nodo c) se le pinta negro y a hermano de rojo (nodo d)
• Rotar a la derecha para equilibrar.
BORRAR.
CASO N°4
Un nodo a y hermano negro, el hijo derecho de hermano rojo (nodo e) y el izquierdo negro
A padre se le pinta negro (nodo b), a hermano se pinta del color que tenia padre (nodo d)** y al hijo derecho de hermano (nodo e) también negro.
Rotar a la izquierda para equilibrar alturas negras.
INSERCIÓN.
La inserción de un nodo se realiza inicialmente igual que en un árbol binario de búsqueda, como las hojas deben ser negras.
INSERCIÓN.
CASO N°1
INSERCIÓN EN UN ÁRBOL ROJO-NEGRO
INSERCIÓN.
CASO N°2
INSERCIÓN EN UN ÁRBOL ROJO-NEGRO
INSERCIÓN.
CASO N°3
INSERCIÓN EN UN ÁRBOL ROJO-NEGRO
REFERENCIAS
Acuña Cháirez, E. (2012). Principios de Diseño Aplicados a Arboles Binarios de Búsqueda.
Laclaustra, J. C. Técnicas Avanzadas de Programación.
Serna, L. A., Unanue, R. M., & Artacho, M. R. (2011). Programación y estructuras de datos avanzadas. Editorial Universitaria Ramón Areces.