2
Arbol AVL
• Losárboles AVL son
balanceados.
• Un árbol AVL es un
árbol binario de
búsqueda tal que para
cada nodo v de T, las
alturas de los hijos de v
difieren como mucho en
1.
88
44
17 78
32 50
48 62
2
4
1
1
2
3
1
1
Ejemplo de árbol AVL donde las
alturas se muestran junto a los nodos
3.
3
Altura de unárbol AVL
• Proposición: La altura de un árbol AVL T que almacena n llaves es
O(log n).
• Justificación: ....
4.
4
Inserción
88
44
17 78
32 50
4862
2
5
1
1
3
4
2
1
54
1
T0
T2
T3
x
y
z
2
3
4
5
6
7
1
88
44
17
78
32 50
48
62
2
4
1
1
2 2
3
1
54
1
T0 T1
T2
T3
x
y z
inserta(54) -> desbalanceado...
...balanceado
1
2
3
4
5
6
7
5.
5
Restructuración
• Hay cuatroformas de rotar nodos en un árbol AVL:
- Rotación simple:
T0
T1
T2
T3
c = x
b = y
a = z
T0 T1 T2
T3
c = x
b = y
a = z
single rotation
T3
T2
T1
T0
a = x
b = y
c = z
T0
T1
T2
T3
a = x
b = y
c = z
single rotation
6.
6
Restructuración (cont.)
• Rotacionesdobles:
double rotation
a = z
b = x
c = y
T0
T2
T1
T3 T0
T2
T3
T1
a = z
b = x
c = y
double rotation
c = z
b = x
a = y
T0
T2
T1
T3 T0
T2
T3 T1
c = z
b = x
a = y