Professional Documents
Culture Documents
Objetivos
Introducir rbol Binario con Equilibrio Perfecto Introducir e implementar el TAD rbol Binario Equilibrado por altura Introducir e implementar el TAD rbol Binario Equilibrado por color de nodos
BST equilibrados
Caracterstica de BST
m = nmero de nodos
h = altura del rbol
Equilibrio perfecto
Otros tipos de equilibrio (AVL, arboles rojo-negros, etc.)
Equilibrio perfecto
Para cada nodo, el nmero de nodos del subrbol izquierdo y el nmero de nodos del subrbol derecho difieren como mximo en 1 unidad
Desplazar la mitad de nodos que sobran de un lado al otro. Mantener la condicin de BST al desplazar los nodos
Desplazar a derechas:
1. 2. 3.
Insertar la Raz en el subrbol derecho Colocar como Raz al mayor del subrbol izquierdo Repetir 1 y 2 tantas veces como el nmero de nodos a desplazar.
Operaciones auxiliares:
equilibrar(NodoABB actual) desplazarDerecha(NodoABB actual, int cuantos) desplazarIzquierda(NodoABB actual, int cuantos)
rboles balanceados
Un rbol balanceado es un rbol binario de bsqueda, en el cual se debe cumplir la siguiente condicin: Para todo nodo T del rbol, la altura de los subrboles izquierdo y derecho no deben diferir en ms de una unidad
Adelson-Velkii & Landis Formulacin menos estricta y costosa que equilibrio perfecto Ligero deterioro del rendimiento medio de las bsquedas {BST perfectamente equilibrados} {rboles AVL}
AVL: definicin
Reequilibrado sencillo y eficiente Longitud del camino medio de bsqueda similar a la de los rboles perfectamente equilibrados Bsqueda, insercin y borrado ~ O(log n) Un AVL de altura h con el mnimo nmero de nodos se genera de manera similar a los nmeros de Fibonacci rbol de fibonacci:
El rbol vaco es rbol de fibonacci de altura 0 (A0) Un nico nodo es rbol de fibonacci de altura 1 (A1) Si Ah-1 y Ah-2 son rboles de fibonnacci de alturas h-1 y h-2, entonces Ah ::= < Ah-1, raz, Ah-2 > es fibonacci de altura h
10
Al insertar en un rbol balanceado deben distinguirse los siguientes casos: 1. Las ramas izquierda (RI) y derecha (RD) del rbol tienen la misma altura (HRI = HRD), por tanto: 1.1 Si se inserta un elemento en RI entonces HRI ser mayor a HRD. 1.2 Si se inserta un elemento en RD entonces HRD ser mayor a HRI. No se viola el criterio de equilibrio o balanceo del rbol.
D
D
A CASO 1 11
C 1.1
1.2
B B F B F
H
2.1.2. G I
F C F
F
A
A
CASO 2.2. 13 B 2.2.1.
2.2.2.
1 45
65
-1 70
FE = HRD - HRI
0
33
-1 54 0 50
0 68
Los valores que puede tomar FE son: -1,0,1. En otros casos debera reestructurarse el rbol.
14
Reestructura el rbol significa rotar los nodos del mismo. La rotacin puede ser simple o compuesta. El primer caso involucra 2 nodos y el segundo caso afecta a 3 SR (simple derecha)
Simple
SL (simple izquierda) Rotacin
0 B
0 C
16
1 0
B B
0 0
C A
0 C
17
0
B
0 D
18
1 0
C
0 D
0 0
D C
0 E
19
20
21
22
23
2)
3)
Seguir el camino de bsqueda del rbol, hasta localizar el lugar donde hay que insertar el elemento. Se inserta el elemento. Se re-calcula el FE de todos los nodos que componen el rbol. Si en alguno de los nodos se viola el criterio de equilibrio entonces debe reestructurarse el rbol.
24
25
26
Consiste en quitar un nodo del rbol sin violarlos principios que definen justamente un rbol balanceado. Se debe distinguir los siguiente casos:
1.
2.
3.
Si el elemento a borrar tiene un solo descendiente, entonces tiene que sustituirse por ese descendiente. Si el elemento a borrar tiene los dos descendiente, entonces se tiene que sustituir por el nodo que se encuentra ms a la izquierda en el subrbol derecho o por el nodo que se encuentra ms a la derecha en el subrbol izquierdo .
27
Localizar su posicin en el rbol. Eliminarlo siguiendo los criterios establecidos previamente. Regresar por el camino de bsqueda calculando el FE de los nodos visitados. Si en alguno de los nodos se viola el criterio de equilibrio, entonces debe reestructurarse el rbol. El proceso concluye una vez que se llega hasta la raz del rbol.
28
EJERCICIOS
Eliminar las siguientes claves del rbol balanceado de la figura: 82, 10, 39, 65, 70, 68 y 66 z
29
EJERCICIOS
30
EJERCICIOS
Eliminar la clave: 10
31
EJERCICIOS
Eliminar la clave: 39
32
EJERCICIOS
Eliminar la clave: 65
33
EJERCICIOS
Eliminar la clave: 70
34
EJERCICIOS
Eliminar la clave: 68
35
EJERCICIOS
inar la clave: 66
36
EJERCICIOS
in Final.
37