Professional Documents
Culture Documents
Cursada 2015
rboles AVL
rbol Binario de Bsqueda: Definicin
21 30
33 33
13 21
5 25 36 32 41
18
40 43
15
rbol Binario de Bsqueda
Por qu no son ABB?
21 5
33 6
13 1
17 18 22 4
25 2
15 40
rbol Binario de Bsqueda
Ejercicios:
Insertar: 22, 48 Borrar : 15,25,13,36
21
33
13
5 25 36
18
40
15
rboles AVL
Definicin
Caractersticas
Insercin
Desbalanceo
Rotaciones Simples y Dobles
Eliminacin
9
rbol AVL: Definicin
Un rbol AVL (AdelsonVelskiiLandis) es un rbol
binario de bsqueda que cumple con la condicin
de estar balanceado
11
Operaciones en un AVL
Bsqueda/Recuperacin
Rebalancear el rbol
13
Problemas: Desbalanceo
Al insertar un elemento se actualiza la
informacin de la altura de los nodos que
estn en el camino desde el nodo insertado a
la raz
14
Problemas: Desbalanceo
Ejemplo al insertar un nodo
Se desbalancea el 6
10 10
6 17 17
6
4 15 20 4 15 20
2
rbol despus de
insertar el 2
15
Rebalanceo del rbol
Para restaurar el balanceo del rbol:
16
Rebalanceo del rbol
Hay 4 casos posibles de desbalanceo a tener en
cuenta, segn donde se hizo la Insercin. El nodo
A es el nodo desbalanceado.
A A
1. Insercin en el Subrbol 2. Insercin en el Subrbol DER
IZQ del hijo IZQ de A del hijo IZQ de A
A
3. Insercin en el Subrbol IZQ 4. Insercin en el Subrbol A
del hijo DER de A DER del hijo DER de A
17
Rebalanceo del rbol
La solucin para restaurar el balanceo es la
ROTACION
18
Rebalanceo del rbol
19
Rotacin Simple
Caso 1: Rotacin Simple Izquierda
2
1
2
1
C
A B C
B
A
10 10
Rot. Simple
6 17 4 17
4 15 20 2 6 15 20
21
Rotacin Simple (cont.)
Caso 4: Rotacin Simple Derecha
22
Rotacin Simple (cont.)
Ejemplo:
23
Rotacin Simple (cont.)
1 Rot. Simple con Derecho 2
2
1 3
3
2
24
Rotacin Simple (cont.)
Siguiendo con el ejemplo:
2 Rot. Simple 4
1 4 2 5
3 5 1 3 6
25
Rotacin Simple (cont.)
Siguiendo con el ejemplo:
4 Rot. Simple 4
2 5 2 6
1 3 6 1 3 5 7
26
Rotacin Doble
En algunos casos la rotacin simple no resuelve el
problema
40 40
27
Rotacin Doble (cont.)
Dado que el subrbol B tiene por
lo menos un tem, podemos
3 considerar que est formado por una
raz y dos subrboles
1 3
1
C
A 2
B
C
A
B1 B2
28
Rotacin Doble (cont.)
La rotacin doble es similar a la simple, slo
que involucra cuatro subrboles en lugar de tres
Ni los nodos 1 y 3 pueden quedar como raz, la 3
nica alternativa es que quede el nodo 2
29
Rotacin Doble (cont.)
2 Luego se hace una rotacin
simple entre 2 y 3
1 3
B1 B2
A C
30
Rotacin Doble (cont.)
Caso 3: Rotacin Doble Derecha
31
Rotacin Doble (cont.)
Ejemplo:
32
Eliminacin de un nodo
La eliminacin de un nodo es similar al borrado en un
rbol binario de bsqueda.
Luego de realizar el borrado se debe actualizar la altura
de todos los nodos, desde el nodo en cuestin hasta la raz.
Rebalancear el rbol
33
Eliminacin de un nodo
Se pueden definir 3 casos de desbalanceo a izquierda en
un nodo y los simtricos a derecha.
Los casos de desbalanceo en el subrbol izquierdo del
nodo 2 dependen de las alturas h1 y h2 en el subrbol
derecho
2
C
h1 h2
A B
34
Eliminacin de un nodo
Caso 1: h1= h2 Solucin: RSI en el nodo 2
2 1
1 2
h h
C A
h1 h2
B C
A B
2 1
1 2
h h-1
C A
h2
h1
B B C
A
36
Eliminacin de un nodo
Caso 3: h1< h2 Solucin: RDI en el nodo 3
3 2
1 1 3
2 h h-1
C
h1
A h2
A B1 B2 C
B1 B2
37
Eliminacin de un nodo
38
Eliminacin de un nodo
Rotacin simple entre el 14 y
15. Queda desbalanceado el 12
39
Tiempo de ejecucin de las
operaciones en AVL
Las operaciones de:
Bsqueda
Recorren la altura del
Insercin rbol en el peor caso
Eliminacin
40
Operaciones sobre los rboles AVL:
Conclusiones
Las operaciones de insercin y eliminacin de un nodo
son similares a las de un rbol binario de bsqueda.
En ambas operaciones se debe actualizar la informacin
de la altura y realizar rotaciones si es necesario.
La insercin provoca una nica reestructuracin.
La eliminacin puede provocar varias reestructuraciones.
Las operaciones son de O(log n)
41
rboles Binarios de Bsqueda:
Conclusiones
La idea de los rboles binarios de bsqueda es muy
til.