arboles balanceados
DESCRIPTION
habla sobre los nodos que tiene cada arbol y que tipo de arboles hayTRANSCRIPT
-
Clase 32: rbol balanceado AVL
Estructuras de datos (Prof. Edgardo A. Franco)
1Prof. Edgardo Adrin Franco Martnez http://computacion.cs.cinvestav.mx/~efranco
@efranco_escom
-
Contenido Problema de los rboles binarios de bsqueda Variantes de los rboles binarios de bsqueda rbol balanceado AVL
Definicin Condicin de equilibrio Caractersticas Operaciones sobre un AVL
Insertar nodos Balancear Eliminar Nodos Calcular altura
Complejidad de la bsqueda Ordenes de complejidad Bsquedas y recorridos Ejercicios de rboles AVL
Insercin de claves Eliminacin de claves
Liga Web
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
2
-
Problema de los rboles binarios de bsqueda Los rboles binarios, son eficientes en las operaciones de
bsqueda, insercin y eliminacin cuando el rbol crece odecrece descontroladamente, la eficiencia de la estructura dedatos decae.
Una situacin critica es cuando se insertan elementosordenados.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
3
Insertar los datos 15,18,30,60
15
18
30
60
32
11
9
4
Insertar los datos 32,11,9,4,
Se expanden incrementando las comparaciones, operacin de O(N)
-
Variantes de los rboles binarios de bsqueda
Con el objetivo de mantener la eficiencia en laoperacin de bsqueda surgen modificaciones a lasreglas de operacin del rbol binario de bsqueda.
rbol rojo-negro rbol balanceado (AVL) rbol biselado
Estas variantes presentan ventajas en cuanto alrendimiento que ofrecen a la hora de realizarbsquedas principalmente.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
4
-
rbol balanceado AVL La principal caracterstica de estos es la de realizar
reacomodos o balanceos, despus de inserciones oeliminaciones de elementos.
Estos rboles tambin reciben el nombre de AVL(autores: 2 matemticos rusos G.M. Adelson-Velskii y E.M Landis en1962).
Formalmente se define un rbol balanceado comoun rbol de bsqueda, en el cual se debe cumplir lasiguiente condicin: Para todo nodo T del rbol laaltura de los subrboles izquierdo y derecho nodeben diferir en a lo sumo una unidad.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
5
-
Definicin Bsicamente un rbol AVL es un rbol Binario de
Bsqueda al que se le aade una condicin deequilibrio.
Para todo nodo la altura de sus subrboles izquierdo y derecho pueden diferir a lo sumo en 1.
Gracias a esta forma de equilibrio (o balanceo), lacomplejidad de una bsqueda en uno de estosrboles se mantiene siempre en orden decomplejidad O(log n).
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
6
-
Condicin de equilibrio
Para todos los nodos, la altura de la ramaizquierda no difiere en mas de una unidad de la altura de la rama derecha Es
tru
ctu
ras
de
dat
os
32
rb
ol b
alan
cead
o A
VL
Pro
f. Ed
gard
o A
dri
n F
ran
co M
art
nez
7
-
Caractersticas Un AVL es un ABB.
La diferencia entre las alturas de los subrboles. derecho eizquierdo no debe excederse en ms de 1.
Cada nodo tiene asignado un peso de acuerdo a las alturasde sus subrboles.
Un nodo tiene un peso de 1 si su subrbol derecho es msalto, -1 si su subrbol izquierdo es ms alto y 0 si las alturasson las mismas.
La insercin y eliminacin en un rbol AVL es la misma queen un ABB.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
8
-
Ejemplo de AVL
Slo el rbol de la izquierda es AVL. El de la derecha viola lacondicin de equilibrio en el nodo 6, ya que su subrbolizquierdo tiene altura 3 y su subrbol derecho tiene altura 1.
6
8
741
2
3
1
0
0-1
0
-1
-16
8
7
41
2
3
0 0
00
10
-2
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
9
-
Equilibrio Equilibrio = (altura derecha ) (altura izquierda)
Describe relatividad entre subrbol derecho ysubrbol izquierdo.
+ (positivo) derecha mas alto (profundo) - (negativo) izquierda mas alto (profundo)
Un rbol binario es un AVL si y slo si cada uno desus nodos tiene un equilibrio de 1, 0, + 1
Si alguno de los pesos de los nodos se modifica enun valor no vlido (2 -2) debe seguirse unesquema de rotacin.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
10
-
Desequilibrios Desequilibrio hacia la izquierda (Equilibrio > +1)
Desequilibrio hacia la derecha (Equilibrio < -1)
-
Operaciones sobre un AVL1. Insertar nodo
2. Balancear
Caso 1 Rotacin simple izquierda RSI Caso 2 Rotacin simple derecha RSD Caso 3 Rotacin doble izquierda RDI Caso 4 Rotacin doble derecha RDD
3. Eliminar nodo
4. Calcular altura
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
12
-
Insertar un nodo 1. Se usa la misma tcnica que para insertar un nodo
en un ABB ordenado
2. Trazamos una ruta desde el nodo raz hasta unnodo hoja (donde hacemos la insercin).
3. Insertamos el nodo nuevo.
4. Volvemos a trazar la ruta de regreso al nodo raz,ajustando el equilibrio a lo largo de ella.
5. Si el equilibrio de un nodo llega a ser + - 2,volvemos a ajustar los subrboles de los nodospara que su equilibrio se mantenga acorde con loslineamientos AVL (que son +- 1)
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
13
-
Balancear Caso 1: Rotacin simple izquierda RSI
Si esta desequilibrado a la izquierda (E>+1) y suhijo derecho tiene el mismo signo (+) hacemosrotacin sencilla izquierda.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
14
-
Caso 1: Rotacin simple izquierda RSI
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
15
- Caso 2: Rotacin simple derecha RSD Si esta desequilibrado a la derecha (E
-
Caso 2: Rotacin simple derecha RSD
D
0
-1
0 Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
17
-
Caso 2: Rotacin simple derecha RSD
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
18
-
Rotacin simple izquierda o derecha. Observaciones:
Se conserva el orden apropiado del rbol. Restablece todos los nodo a equilibrios
apropiados AVL
Conserva el recorrido en orden que el rbolanterior.
Slo se necesita a lo ms modificar 3 apuntadorespara lograr el nuevo equilibrio (con la de la raz)
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
19
-
Caso 3: Rotacin doble izquierda RDI Si est desequilibrado a la derecha (E< 1), y su
hijo izquierdo tiene distinto signo (+) hacemos rotacin doble izquierda-derecha.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
20
-
Caso 3: Rotacin doble izquierda RDI
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
21
-
Caso 3: Rotacin doble izquierda RDI
Ejercicios de rboles AVL (Edgardo A. Franco)
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
22
-
Caso 4: Rotacin doble derecha RDD Si esta desequilibrado a la izquierda (E>+1), y su
hijo derecho tiene distinto signo () hacemosrotacin doble derecha-izquierda.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
23
-
Caso 4: Rotacin doble derecha RDD
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
24
-
Caso 4: Rotacin doble derecha RDD
Ejercicios de rboles AVL (Edgardo A. Franco)
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
25
-
Eliminar Al eliminar un nodo en un rbol AVL puede afectar
el equilibrio de sus nodos. Entonces hay que hacer rotaciones simples o dobles.
Eliminar un nodo se realiza de la misma manera que en un rbol binario ordenado. Al localizar el nodo que se desea eliminar se realiza el siguiente procedimiento: Si el nodo es un nodo hoja, simplemente lo eliminamos. Si el nodo solo tiene un hijo, lo sustituimos con su hijo. Si el nodo eliminado tiene dos hijos, lo sustituimos por el
nodo que se encuentra mas a la derecha en el subrbol izquierdo o ms a la izquierda en el subrbol derecho.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
26
-
Una vez que se ha eliminado el nodo, se tiene queequilibrar el rbol:
Si el equilibrio del padre del nodo eliminado cambia de 0 a+-1 el algoritmo concluye.
Si el padre del nodo eliminado cambio de +-1 a 0, la alturadel rbol ha cambiado y se afecta el equilibrio de suabuelo.
Si el equilibrio del padre del nodo eliminado cambia de +-1 a +- 2 hay que hacer una rotacin. Despus deconcluirla, el equilibrio del padre podra cambiar, lo que, asu vez, podra forzarnos a hacer otros cambios (yprobables rotaciones) en toda la ruta hacia arriba amedida que ascendemos hacia la raz. Si encontramos enla ruta un nodo que cambie de 0 a +- 1 entonces seconcluye.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
27
-
Calcular altura Una funcin para calcular la altura a partir de una
posicin puede escribirse recursivamente como:
//Calcula la altura de un rbol a partir de una posicin pint Altura (arbol *a, posicion p){
if(NullNode (a,p))return 0;
// Retornar la mayor altura (Izquierda o Derecha)else
return 1 + Max(Altura (a,LeftSon (a,p)),Altura (a,RightSon (a,p)));}
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
28
-
Complejidad de bsqueda Los rboles AVL estn siempre equilibrados de tal
modo que para todos los nodos, la altura de la ramaizquierda no difiere en mas de una unidad de laaltura de la rama derecha. Gracias a esta forma deequilibrio (o balanceo), la complejidad de unabsqueda en uno de estos arboles se mantienesiempre en orden de complejidad O(log2 n).
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
29
-
Ordenes de complejidad
O(f(n)) N=100 N=200 En un t=2h (N=?)
log n 1 h 1.15 h 10000
n 1 h 2 h 200
n log n 1 h 2.30 h 199
n2 1 h 4 h 141
n3 1 h 8 h 126
2n 1 h 1030 h 101
Ejemplo: 1 h de cmputo para un problema detamao N=100.
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
30
-
Ejercicios de insercin1. Inserte las claves 10 47 38 06 55 90 49 50 51 58
en el rbol balanceado que se da a continuacin.
Ejercicios de rboles AVL (Edgardo A. Franco)
62
80
22
35-1-1
00
00
-1-1
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
31
-
Ejercicios de eliminacin2. Elimine las siguientes claves del rbol balanceado siguiente:
73 66 50 47 39 94
39
66
9 37
-1-1
0044 85
22 50 73 90
88 9447
-1-1
-1-111
11
11
00
00 000000
00
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
32
-
Liga Web Simulacin del funcionamiento de un
rbol AVL
http://www.cs.jhu.edu/~goodrich/dsa/trees/avltree.html
Estr
uct
ura
s d
e d
ato
s3
2
rbo
l bal
ance
ado
AV
LP
rof.
Edga
rdo
Ad
rin
Fra
nco
Mar
tn
ez
33