1
Arboles AVL
• Introducción
• Arboles AVL (Adel’son-Vel’skii and Landis
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
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
Inserción
88
44
17 78
32 50
48 62
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
Restructuración
• Hay cuatro formas 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
Restructuración (cont.)
• Rotaciones dobles:
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
7
Eliminación
• eliminar(32)

Arboles_AVL.ppt. .

  • 1.
    1 Arboles AVL • Introducción •Arboles AVL (Adel’son-Vel’skii and Landis
  • 2.
    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
  • 7.