Árboles Rojo

Anuncio
BISOFT-28
Estructuras de Datos 2
Árboles Rojo-Negro
Instructor
Esteban
Meneses
Prof. María Eugenia
Ucrós,
Julia Espinoza G.
 Copyright Cenfotec S.A. 2003
Introducción
• Los árboles binarios tienen grandes ventajas como
dispositivos de almacenamiento: la búsqueda es
rápida, así como la inserción y el borrado.
• Las estructuras de datos lineales, sólo cumplen
alguna de esas características.
• Sin embargo, el buen desempeño de los árboles
binarios está supeditado a que la inserción de nodos
sea aleatoria.
• Si la inserción de los nodos es en orden ascendente
de las llaves, el árbol se degenera.
• Se debe recurrir a un mecanismo para balancear el
árbol.
 Copyright Cenfotec S.A. 2003
Árboles balanceados
• Eficiencia O(log n)
M
D
B
A
Q
G
C
O
N
Z
T
 Copyright Cenfotec S.A. 2003
Árboles degenerados
• Eficiencia O(n)
M
A
P
R
Q
S
T
 Copyright Cenfotec S.A. 2003
Árboles degenerados
• Eficiencia O(n)
M
A
P
R
Q
S
T
 Copyright Cenfotec S.A. 2003
Precedente
• Árboles AVL.
• Propiedades:
– La diferencia entre las alturas de los hijos nunca es
mayor a 1.
– Sus dos hijos son árboles AVL.
• Operaciones:
– Rotaciones simples.
– Rotaciones dobles.
 Copyright Cenfotec S.A. 2003
Rotación simple
M
D
B
D
nodo externo
zig-zig
B
M
 Copyright Cenfotec S.A. 2003
Rotación doble
M
M
D
B
D
zig-zag
nodo interno
B
D
B
M
 Copyright Cenfotec S.A. 2003
Árboles Rojo-Negro
• Todas las operaciones son iguales, en un principio, a
los árboles binarios.
• Existen algunas consideraciones especiales con las
operaciones de inserción y de borrado.
• Los nodos son coloreados.
• Durante la inserción y el borrado, algunas reglas se
deben seguir para preservar la configuración de los
colores.
 Copyright Cenfotec S.A. 2003
Reglas Rojo-Negro
1)Cada nodo es, o rojo, o negro.
2)La raíz es siempre de color negro.
3)Si un nodo es rojo, sus hijos deben ser siempre
negros (aunque lo opuesto no necesariamente es
cierto).
4)Cualquier camino de la raíz a una hoja o a un hijo
nulo, debe tener la misma cantidad de nodos negros.
El número de nodos negros desde la raíz hasta una
hoja se conoce con el nombre de altura negra.
 Copyright Cenfotec S.A. 2003
¿Cómo se cumplen las reglas?
• Se puede cambiar el color de los nodos.
• Se pueden realizar rotaciones.
Cambios de color
Rotaciones
• No se permiten llaves duplicadas.
 Copyright Cenfotec S.A. 2003
Manteniendo las reglas Rojo-Negro
• Cambio de colores en la ruta hacia el lugar de
inserción.
– Regla de Oro: si se encuentra un nodo negro con
dos hijos rojos se debe cambiar el color de todos
(a menos de que el padre sea la raíz).
– Altura negra queda intacta.
• El nodo a insertar siempre es rojo.
• Regla de Plata: un árbol binario completo se debe
colorear siempre negro.
 Copyright Cenfotec S.A. 2003
Regla de Oro
M
D
B
Q
G
O
Z
insertar A
 Copyright Cenfotec S.A. 2003
Regla de Oro (cont.)
M
D
B
Q
G
O
Z
A
 Copyright Cenfotec S.A. 2003
Regla de Oro (cont.)
M
D
B
Q
G
O
Z
A
 Copyright Cenfotec S.A. 2003
Regla de Oro (cont.)
M
D
B
Q
G
O
Z
A
 Copyright Cenfotec S.A. 2003
Regla de Oro (cont.)
M
D
B
Q
G
O
Z
A
 Copyright Cenfotec S.A. 2003
Regla de Plata
M
D
B
Q
G
O
Z
Árbol binario completo: todas las hojas están al mismo
nivel y cada nodo no hoja tiene 2 hijos.
 Copyright Cenfotec S.A. 2003
Regla de Plata (cont.)
M
D
B
Q
G
O
Z
A
 Copyright Cenfotec S.A. 2003
Rotaciones una vez insertado el nodo
• Sea X es el nodo insertado, P su padre y G su abuelo.
• X puede ser un nieto interno o externo.
• Casos de inserción:
– Posibilidad 1: P es negro. No hay problema.
– Posibilidad 2: P es rojo y X es externo.
• Cambiar el color de G.
• Cambiar el color de P.
• Rotar el abuelo.
 Copyright Cenfotec S.A. 2003
Rotaciones una vez insertado el nodo
– Posibilidad 3: P es rojo y X es interno.
• Cambiar el color de G.
• Cambiar el color de X.
• Rotar el padre.
• Rotar el abuelo.
 Copyright Cenfotec S.A. 2003
Ejercicios
• Ejercicio 1
– Realizar las siguientes inserciones:
2,25,13,8,9,15,28,35,1,10,22,12
– Borrar el nodo 12
• Ejercicio 2
– Realizar las siguientes inserciones:
10,11,12,13,14,15,27,5,18,37,1,7,40
– Borrar el nodo 10
• Ejercicio 3
– Realizar las siguientes inserciones:
A,Z,Q,W,E,R,F,G,H,Y,B,M,P,L,C
 Copyright Cenfotec S.A. 2003
FIN
 Copyright Cenfotec S.A. 2003
Descargar