Los árboles rojo-negro son una estructura de datos en forma de árbol binario de búsqueda equilibrado donde cada nodo tiene un color rojo o negro. Mantienen las propiedades de los árboles binarios y requieren que la raíz sea negra, las hojas sean negras, y si un nodo es rojo, sus hijos deben ser negros. Rotaciones izquierdas y derechas mantienen el equilibrio al mover nodos. Los árboles rojo-negro son valiosos para aplicaciones sensibles al tiempo y la
2. Definición
Son una estructura de datos en forma de árbol binario de búsqueda equilibrado,
en el que cada nodo tiene un color rojo o negro.
3. Propiedades
Los árboles rojo-negro presentan las mismas características de los árboles
binarios, pero adicional a eso tienes las siguientes características:
■ Cada nodo es rojo o negro.
■ La raíz del árbol es negra.
■ Todas las hojas (nodos sin hijos) son negras.
■ Si un nodo es rojo, sus hijos son negros.
■ Para cada nodo, todos los caminos desde el nodo hasta las hojas que están
debajo del mismo tienen el mismo número de nodos negros.
4. Rotaciones
Las rotaciones son importantes para mantener el equilibrio del árbol rojo-negro.
Existen dos tipos de rotaciones en los árboles rojo-negro
5. ■ Rotación izquierda: Se utiliza para equilibrar un árbol rojo-negro en el que un
nodo tiene 2 hijos derecho rojos. Implica mover un nodo del hijo derecho a la
posición del padre, mientras que el padre se mueve a la posición del hijo
derecho del nodo que se movió. Después, el hijo izquierdo del nodo que se
movió se convierte en el hijo derecho del padre original.
6. ■ Rotación derecha: Se utiliza para equilibrar un árbol rojo-negro en el que un
nodo tiene dos hijos izquierdo rojos. Implica mover un nodo del hijo izquierdo
a la posición del padre, mientras que el padre se mueve a la posición del hijo
izquierdo del nodo que se movió. Luego, el hijo derecho del nodo que se
movió se convierte en el hijo izquierdo del padre original.
7. Usos y ventajas
■ No únicamente son valiosos en aplicaciones sensibles al tiempo como
las aplicaciones en tiempo real, sino que además son apreciados para la
construcción de bloques en otras estructuras de datos que garantizan un peor
caso.
– Por ejemplo, muchas estructuras de datos usadas
en geometría computacional pueden basarse en árboles rojo-negro.
■ Los árboles rojo-negro son particularmente valiosos en programación
funcional, donde son una de las estructuras de datos persistentes más
comúnmente utilizadas en la construcción de arrays asociativos y conjuntos
que pueden retener versiones previas tras mutaciones.
8. Referencias Bibliográficas
■ https://www.wikiwand.com/es/%C3%81rbol_rojo-negro#Usos_y_ventajas
■ https://www.infor.uva.es/~cvaca/asigs/doceda/rojonegro.pdf
■ https://es.wikipedia.org/wiki/%C3%81rbol_rojo-negro
■ Cormen, T. H., Leiserson, C. E., Rivest, R. L., & Stein, C. (2009). Introduction
to algorithms (3rd ed.). MIT Press.
■ https://www.geeksforgeeks.org/red-black-tree-set-1-introduction-2/