SlideShare una empresa de Scribd logo
1 de 28
Árboles Rojos-Negros
Definición:
// Decimos que un árbol rojo-negro es
un árbol binario de búsqueda en
donde cada nodo tiene un atributo
de color el cual es o rojo o
negro.
Propiedades
1 Cada nodo o es rojo o es negro
2 La raíz es siempre negro
3 Cada hoja( null) es negra
4 Si un nodo es rojo, entonces, sus hijos son negros
5 Cada camino de un nodo a cualquier descendiente tiene la misma cantidad de
nodos negros
Usos de los arboles rojos-negros
Tabla de hash
Tabla de enrutamiento
Operación de búsqueda
La búsqueda consiste en acceder a la raíz del
árbol, si el elemento a localizar coincide con
este, la búsqueda ha concluido con éxito, si el
elemento es menor se busca el subárbol
izquierdo y si es mayor en el derecho.
Operación de rotación
La estructura de los apuntadores se cambia
mediante la rotación, la cual es una
operación que preserva las propiedades de
un árbol binario de búsqueda.
//Rotaciones
Operación de eliminación
//
La operación se realiza igual que en los árboles binarios de
búsqueda. Se busca el nodo a borrar, si es un nodo con dos hijos no
nulos, se toma el máximo elemento del subárbol izquierdo o el mínimo
del subárbol derecho, y movemos su valor al nodo que es borrado.
Borramos entonces el nodo del que copiamos el valor.
En caso de que el nodo eliminado sea negro, se debe hacer un reajuste
en los colores para que el árbol siga cumpliendo las condiciones
necesarias
Caso 1
El árbol sigue siendo rojo-negro, por lo
que no hay que realizar ningún ajuste
Caso 2Nodo “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.
Caso 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
Operación de inserción
//
La inserción de un nodo se hace de manera similar que en un
árbol binario de búsqueda. Al nuevo nodo siempre se le da el
color rojo y su color cambia según los requerimientos del
árbol.
Si el padre del nodo insertado es negro, no se realiza ningun
ajuste.
En caso de que no exista un nodo padre, entonces el nodo
insertado será la raiz y por lo tanto será negro.
Si el nodo padre existe y negro, no se realiza ningun ajuste.
Cuando el nodo padre es rojo se realizan los siguientes
procedimientos:
Caso 1: Los nodos del nivel superior son
rojos
En este caso se cambia el color de los nodos y, z y t. Puede que al hacer esto
ahora el padre del nodo z sea rojo y de nuevo se viole la regla que indica que
cada hijo rojo tiene un padre negro por lo que ahora el nodo que se comprueba
es el nodo z
Caso 2: nodo x es hijo derecho
Se efectúa una rotación entre x & y, esto no resuelve el problema, por lo que se
debe aplicar el caso siguiente
Caso 3: nodo x es hijo izquierdo
Se efectúa una rotación z-y y se cambia el color a z & y, lo que resolvería el
problema
Ejercicio de aplicación
Se incumple la propiedad
que indica que la raíz
siempre debe ser negra,
por lo que se debe
cambiar el color del nodo
Valores: 47, 60, 22, 12, 6, 13, 41, 20, 52, 16
Valores: 60, 22, 12, 6, 13, 41, 20, 52, 16
Caso 1: se cambia el color al
padre, tío y abuelo. Y en caso
de que el abuelo sea el nodo
raíz se pinta de negro
Caso 3: Se usa la rotación a la
derecha entre el nodo abuelo, se
cambia el color al nodo padre y al
nodo abuelo
Valores: 6, 13, 41, 20, 52, 16
Caso 1: se cambia de color al nodo
padre, tío y abuelo. Si el abuelo es la
raíz se pinta de negro
Valores: 13, 41, 20, 52, 16
Caso 1: se cambia de color al nodo
padre, tío y abuelo.
Valores: 41, 20, 52, 16
Caso 2: se usa rotación a la
izquierda por el padre para llevarlo
al caso 3
Caso 3: Se usa la rotación a la
derecha entre el nodo abuelo, se
cambia el color al nodo padre y al
nodo abuelo
Caso 2: se usa rotación a la
izquierda por el padre para llevarlo
al caso 3
Valores: 52, 16
Caso 3: Se usa la rotación a la
derecha entre el nodo abuelo, se
cambia el color al nodo padre y al
nodo abuelo
Arboles rojonegros.pptx

Más contenido relacionado

Similar a Arboles rojonegros.pptx (14)

Árboles AA
Árboles AAÁrboles AA
Árboles AA
 
Arboles
ArbolesArboles
Arboles
 
Arboles Binarios
Arboles BinariosArboles Binarios
Arboles Binarios
 
Arboles
ArbolesArboles
Arboles
 
Árbol rojo-negro
Árbol rojo-negroÁrbol rojo-negro
Árbol rojo-negro
 
Arbol AA
Arbol AAArbol AA
Arbol AA
 
Arbol AA
Arbol AAArbol AA
Arbol AA
 
3 estructuras no lineales estáticas y dinámicas
3  estructuras no lineales estáticas y dinámicas3  estructuras no lineales estáticas y dinámicas
3 estructuras no lineales estáticas y dinámicas
 
Arboles binarios
Arboles binariosArboles binarios
Arboles binarios
 
Arboles
Arboles Arboles
Arboles
 
Objetivo 6-2.ppt
Objetivo 6-2.pptObjetivo 6-2.ppt
Objetivo 6-2.ppt
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Para leer estructuras
Para leer estructurasPara leer estructuras
Para leer estructuras
 
Árboles Binarios y Grafos
Árboles Binarios  y GrafosÁrboles Binarios  y Grafos
Árboles Binarios y Grafos
 

Arboles rojonegros.pptx

  • 2. Definición: // Decimos que un árbol rojo-negro es un árbol binario de búsqueda en donde cada nodo tiene un atributo de color el cual es o rojo o negro.
  • 3. Propiedades 1 Cada nodo o es rojo o es negro 2 La raíz es siempre negro 3 Cada hoja( null) es negra 4 Si un nodo es rojo, entonces, sus hijos son negros 5 Cada camino de un nodo a cualquier descendiente tiene la misma cantidad de nodos negros
  • 4. Usos de los arboles rojos-negros Tabla de hash Tabla de enrutamiento
  • 5. Operación de búsqueda La búsqueda consiste en acceder a la raíz del árbol, si el elemento a localizar coincide con este, la búsqueda ha concluido con éxito, si el elemento es menor se busca el subárbol izquierdo y si es mayor en el derecho.
  • 6. Operación de rotación La estructura de los apuntadores se cambia mediante la rotación, la cual es una operación que preserva las propiedades de un árbol binario de búsqueda.
  • 8. Operación de eliminación // La operación se realiza igual que en los árboles binarios de búsqueda. Se busca el nodo a borrar, si es un nodo con dos hijos no nulos, se toma el máximo elemento del subárbol izquierdo o el mínimo del subárbol derecho, y movemos su valor al nodo que es borrado. Borramos entonces el nodo del que copiamos el valor. En caso de que el nodo eliminado sea negro, se debe hacer un reajuste en los colores para que el árbol siga cumpliendo las condiciones necesarias
  • 9. Caso 1 El árbol sigue siendo rojo-negro, por lo que no hay que realizar ningún ajuste
  • 10. Caso 2Nodo “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.
  • 11. Caso 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
  • 12. Operación de inserción // La inserción de un nodo se hace de manera similar que en un árbol binario de búsqueda. Al nuevo nodo siempre se le da el color rojo y su color cambia según los requerimientos del árbol. Si el padre del nodo insertado es negro, no se realiza ningun ajuste. En caso de que no exista un nodo padre, entonces el nodo insertado será la raiz y por lo tanto será negro. Si el nodo padre existe y negro, no se realiza ningun ajuste. Cuando el nodo padre es rojo se realizan los siguientes procedimientos:
  • 13. Caso 1: Los nodos del nivel superior son rojos En este caso se cambia el color de los nodos y, z y t. Puede que al hacer esto ahora el padre del nodo z sea rojo y de nuevo se viole la regla que indica que cada hijo rojo tiene un padre negro por lo que ahora el nodo que se comprueba es el nodo z
  • 14. Caso 2: nodo x es hijo derecho Se efectúa una rotación entre x & y, esto no resuelve el problema, por lo que se debe aplicar el caso siguiente
  • 15. Caso 3: nodo x es hijo izquierdo Se efectúa una rotación z-y y se cambia el color a z & y, lo que resolvería el problema
  • 16. Ejercicio de aplicación Se incumple la propiedad que indica que la raíz siempre debe ser negra, por lo que se debe cambiar el color del nodo Valores: 47, 60, 22, 12, 6, 13, 41, 20, 52, 16
  • 17. Valores: 60, 22, 12, 6, 13, 41, 20, 52, 16 Caso 1: se cambia el color al padre, tío y abuelo. Y en caso de que el abuelo sea el nodo raíz se pinta de negro
  • 18. Caso 3: Se usa la rotación a la derecha entre el nodo abuelo, se cambia el color al nodo padre y al nodo abuelo Valores: 6, 13, 41, 20, 52, 16
  • 19.
  • 20. Caso 1: se cambia de color al nodo padre, tío y abuelo. Si el abuelo es la raíz se pinta de negro Valores: 13, 41, 20, 52, 16
  • 21.
  • 22. Caso 1: se cambia de color al nodo padre, tío y abuelo. Valores: 41, 20, 52, 16
  • 23. Caso 2: se usa rotación a la izquierda por el padre para llevarlo al caso 3
  • 24. Caso 3: Se usa la rotación a la derecha entre el nodo abuelo, se cambia el color al nodo padre y al nodo abuelo
  • 25.
  • 26. Caso 2: se usa rotación a la izquierda por el padre para llevarlo al caso 3 Valores: 52, 16
  • 27. Caso 3: Se usa la rotación a la derecha entre el nodo abuelo, se cambia el color al nodo padre y al nodo abuelo