freeCodeCamp/guide/spanish/algorithms/red-black-trees/index.md

3.0 KiB

title localeTitle
Red Black Trees Árboles negros rojos

Árboles negros rojos

Red-Black Tree es un árbol de búsqueda binaria (BST) en el que todos los nodos siguen las siguientes reglas.

  1. Cada nodo tiene dos hijos, de color rojo o negro.
  2. Cada nodo de la hoja del árbol es siempre negro.
  3. Cada nodo rojo tiene sus dos hijos de color negro.
  4. No hay dos nodos rojos adyacentes (Un nodo rojo no puede tener un padre rojo o un hijo rojo).
  5. Cada ruta desde la raíz a un nodo de hoja de árbol tiene el mismo número de nodos negros (llamado "altura negra").

Estilo de referencia: alt text

¿Por qué los árboles rojo-negro?

La mayoría de las operaciones BST (p. Ej., Search, max, min, insert, delete .. etc) toman O (h) tiempo donde h es la altura del BST. El costo de estas operaciones puede convertirse en O (n) para un árbol binario sesgado. Si nos aseguramos de que la altura del árbol permanezca en O (Logn) después de cada inserción y eliminación, podemos garantizar un límite superior de O (Logn) para todas estas operaciones. La altura de un árbol Negro Rojo es siempre O (Logn) donde n es el número de nodos en el árbol.

Comparación con AVL Tree

Los árboles AVL son más equilibrados en comparación con los árboles rojos y negros, pero pueden causar más rotaciones durante la inserción y eliminación. Entonces, si su aplicación involucra muchas inserciones y eliminaciones frecuentes, entonces se deben preferir los árboles Rojo Negro. Y si las inserciones y eliminaciones son menos frecuentes y la búsqueda es más frecuente, entonces se debe preferir el árbol AVL sobre el Árbol Negro Rojo.

Árbol inclinado a la izquierda rojo-negro

Un árbol rojo-negro (LLRB) que se inclina hacia la izquierda es un tipo de árbol de búsqueda binaria con equilibrio automático. Es una variante del árbol rojo-negro y garantiza la misma complejidad asintótica para las operaciones, pero está diseñado para ser más fácil de implementar.

Propiedades de los árboles inclinados a la izquierda rojo-negro

Todos los algoritmos de árbol rojo-negro que se han propuesto se caracterizan por un tiempo de búsqueda en el peor de los casos limitado por un pequeño múltiplo constante del registro N en un árbol de N teclas, y el comportamiento observado en la práctica es típicamente el mismo múltiplo más rápido que el peor de los casos, cercano a los nodos N de registro óptimos examinados que se observarían en un árbol perfectamente equilibrado.

Específicamente, en un árbol 2-3 rojo-negro inclinado a la izquierda construido a partir de N teclas aleatorias: -> Una búsqueda exitosa aleatoria examina log2 N - 0.5 nodos. -> La altura promedio del árbol es de aproximadamente 2 log2 N

Más información: