Documente Academic
Documente Profesional
Documente Cultură
ESTRUCTURA DE DATOS
1
Definición
El nombre AVL son las iniciales de los hombres que
idearon este tipo de árbol Adelson-Velskii y Landis
en 1962.
Básicamente un árbol AVL es un Árbol binario de
búsqueda al que se le añade una condición de
equilibrio. Esta condición es que para todo nodo la
altura de sus subárboles izquierdo y derecho pueden
diferir a lo sumo en 1.
2
FACTOR DE BALANCE
3
Ejemplo de AVL
2
1
6
0
6 -1
1 2 8
-1
2 8 0
0
1 4
0 0 1
1 4
7 0
0
0 3 7
3
5
Operaciones sobre un AVL
Rebalancear un Arbol: Consiste en reacomodar los nodos de tal
forma que los factores de balance de todos los registro sean {-1,0,1}
Balancear
Caso 1 Rotación simple izquierda RSI
Caso 2 Rotación simple derecha RSD
Caso 3 Rotación doble izquierda RDI
Caso 4 Rotación doble derecha RDD
Para estas rotaciones se asume la siguiente convenciones:
i. Sea P el registro con FB no permitido {-2, 2}
ii. Sea Q la dirección del hijo izquierdo de P o del hijo derecho
de P
6
Implementación: Clase Nodo
Class Nodo {
int bal; //para almacenar el valor del equilibrio del nodo
int dato;
Nodo izq;
Nodo der;
}
7
Una Rotación
Caso 1: Rotación simple izquierda RSI
FB(P)=-2
Se efectúa si:
FB(Q)=-1
8
Una Rotación
Caso 2: Rotación simple derecha RSD
FB(P)=2
Se efectúa si:
FB(Q)=1
Consiste en girar en el sentido de las manecillas del
reloj P alrededor de Q
Ejemplo 1
9
Una Rotación
Caso 2: Rotación simple derecha RSD
Ejemplo 2
10
Doble Rotación
Para la doble rotación se asume lo siguiente:
Sea R el registro que representa el hijo
Izquierdo o el hijo derecho de Q
C P P A
Q A C Q
B R R B
11
Doble Rotación
Caso 3: Rotación doble izquierda RDI
FB(P)=-2
Se efectúa si:
FB(Q)=1
12
Doble Rotación
Caso 3: Rotación doble izquierda RDI
Ejemplo 2
13
Doble Rotación
Caso 4: Rotación doble derecha RDD
Se efectúa si: FB(P)=2
FB(Q)=-1
14
Doble Rotación
Caso 4: Rotación doble derecha RDD
Ejemplo 2
15
Demostración de AVL
Creación , Recorridos , rotaciones y
eliminación de un nodo.
http://cupi2.uniandes.edu.co/sitio/images/curs
osCupi2/datos/entrenadores/applets/n15ent_
avl/avl.htm
16