Está en la página 1de 8

ULADECH -Matemtica Discreta Ing.

Gallo Rodrguez Walter

ARBOLES AVL
Definicin. Es un rbol binario de bsqueda binaria en el cual las alturas de los subarboles izquierdo y
derecho de la raz a lo sumo en 1 y en el cual esos subarboles son, tambin aqu, arboles AVL .a cada
nodo de un rbol AVL se le asocia un factor de Balance
El cual es izquierdo alto, igual o derecho alto, respectivamente, segn que el subrbol izquierdo tenga
una altura mayor, igual o menor que la del subrbol derecho

La denominacin de rbol AVL viene dada por los creadores de tal estructura (Adelson-Velskii y Landis).

Recordamos que un rbol binario de bsqueda es un rbol binario en el cual cada nodo cumple con que
todos los nodos de su subrbol izquierdo son menores que la raz y todos los nodos del subrbol
derecho son mayores que la raz.

Recordamos tambin que el tiempo de las operaciones sobre un rbol binario de bsqueda son O(log n)
promedio, pero el peor caso es O(n), donde n es el nmero de elementos.

La propiedad de equilibrio que debe cumplir un rbol para ser AVL asegura que la profundidad del rbol
sea O(log(n)), por lo que las operaciones sobre estas estructuras no debern recorrer mucho para hallar
el elemento deseado. Como se ver, el tiempo de ejecucin de las operaciones sobre estos rboles es, a
lo sumo O(log(n)) en el peor caso, donde n es la cantidad de elementos del rbol. Sin embargo, y como
era de esperarse, esta misma propiedad de equilibrio de los rboles AVL implica una dificultad a la hora
de insertar o eliminar elementos: estas operaciones pueden no conservar dicha propiedad.

rboles AVL
/ 7

-- 5 -- 8
-- --

-- 4 -- 6
- --
Figure 1. rbol AVL de enteros

A modo de ejemplificar esta dificultad, supongamos que al rbol AVL de enteros de Figure 1 le queremos
agregar el entero 3. Si lo hacemos con el procedimiento normal de insercin de rboles binarios de
bsqueda el resultado sera el rbol de Figure 2 el cual ya no cumple con la condicin de equilibrio de los
rboles AVL dado que la altura del subrbol izquierdo es 3 y la del subrbol derecho es 1.

/ 7

/ 5 --- 8
-

/ 4 --- 6
-

/ 3
Figure 2. rbol que no cumple con la condicin de equilibrio de los rboles AVL.
1
ULADECH -Matemtica Discreta Ing. Gallo Rodrguez Walter

Insercin de un Nodo
Podemos insertar un nuevo nodo en un rbol AVL utilizando el algoritmo usual de rbol Binario,
comparando las llaves del nuevo cdigo con la raz e insertando el nuevo nodo en el subrbol izquierdo
o derecho segn corresponda. A menudo resulta que puede insertarse el nuevo nodo sin cambiar la
altura del subrbol; de ser as ni la altura ni el balance del nuevo rbol se modificara. Aun cuando la
altura del subrbol aumentara, puede ser el subrbol ms corto el que haya crecido, de manera que
cambiara el factor de Balance de la raz. El nico caso que puede ocasionar problemas es cuando se
inserta un nuevo nodo en el subrbol que es, en rigor, mas alto que el otro y cuando aumenta la altura
del rbol. Ello hara que un subarbol tenga una altura 2 veces mayor que el otro; en cambio la condicin
de arboles AVL es que la diferencia de altura nunca sea mayor a 1.

K - K
- \ K
-
- - - T
- T E
- - -
- -
K
\ K \ K
-
T -
-- \ T - T
E E -
- - E / -
- V -
-- -
V P
- - -
A - P
-
- - -

K K
\ \

/ T E / -- T
E /

A -- P / / V
-- P / -- V
A

-- M --
-- M U

ROTACIONES DE ARBOLES

Ahora abordaremos el caso en que un nuevo nodo ha sido insertado en el sub rbol ms alto
de la raz y su altura ha aumentado ; en consecuencia , ahora un subrbol tiene una altura
mayor a 2 que el otro; y el rbol ya no satisface los requisitos de los subarboles AVL . Se
reconstruir parte de el para recuperar el balanceo

2
ULADECH -Matemtica Discreta Ing. Gallo Rodrguez Walter

Hay cuatro tipos de rotaciones

Rotaciones Simples Rotaciones Compuestas

El tipo de rotacin a aplicar depender, segn el factor de balance

Caso 1: Derecho alto: la accin necesaria en este caso recibe el nombre de Rotacin Izquierda ; hemos
girado el nodo X hacia arriba a la raz dejando caer el nodo R en el sub rbol izquierdo de X; el
subrbol T2 de nodos con llaves entre R y X Ahora se convierte en el subrbol derecho de R y no
en el subrbol izquierdo de X

Girar a la Izquierda -- X
\ R

R --
\
X

h T3
T1
T2 T2

h T3 T1
h+1
Altura Total=h+3

3
ULADECH -Matemtica Discreta Ing. Gallo Rodrguez Walter

Caso 2: Izquierdo Alto : Cuando el factor de balance de X es izquierdo alto. Es preciso mover dos
niveles , hacia el nodo W que implanta el sub rbol izquierdo de X para encontrar la nueva raz. Este
proceso se muestra en la siguiente figura y recibe el nombre de rotacin doble , porque la
transformacin se logra en dos pasos, primero girando el subrbol de raiz X hacia la derecha(de modo
que W se convierta en su raiz) y luego girando el subrbol de raz T hacia la izquierda (moviendo W
hacia arriba para que se transforme en la nueva raiz).

En este segundo caso los factores de balance para T y X dependen del factor anterior de balance para
W.

Doble Rotacin a la derecha

\ T
-- W

/ X
T -- X
--

-- W
h T1
T4
T2 T3 T4
h
h T1
T2 T3

Altura Total=h+2

Altura Total=h+3

EJEMPLOS:

Rotacin Simple :

4
ULADECH -Matemtica Discreta Ing. Gallo Rodrguez Walter

Rotacin Doble:

ELIMINACION DE UN NODO:

Para suprimir un nodo x en un rbol AVL se requieren las mismas ideas bsicas de eliminacin de
Arboles Binarios seguido de un Balanceo del rbol (entre rotacin simple y dobles)

Ejemplo:

Inicial:
/ M

\ E \ P

/ C --- J \ N \ S
--

/ B \ D \ H \ K --- O --- R / U
-- -

--- A / G --- I --- L --- T


-- -- -- --

--- F
--

5
ULADECH -Matemtica Discreta Ing. Gallo Rodrguez Walter

Eliminar P:
/ M

\ E \ P

/ C -- J \ N \ S
--
-
/ B \ D \ H \ K -- O -- R / U
-- --
-

-- A / G -- I -- L -- T
-- -- -- --
- - - -
-- F
--
Ajustar el balance :de las dos posibles alternativas O y R de reemplazar a P se escogi a
-
la de la rama izquierda O
/ M

\ E \ O

\ N \ S
/ C -- J
--
-
-- R / U
/ B \ D \ H \ K
--

-- T
-- A / G -- I -- L --
-- -- --
- -
- - / M
-- F
--
-
Girar a la izquierda --- S
-

/ U
-- O
--

-- N -- R -- T
-- -- --
6
ULADECH -Matemtica Discreta Ing. Gallo Rodrguez Walter

Giro doble alrededor de M

/ M

\ E

/ C -- J
--
-
/ B \ D \ H \ K

-- A / G -- I -- L
-- -- --
- - -
-- F
--
-
Giro a la Derecha

/ M

/ J

/ E \ K

/ C / H
-- L
-

/ B -- D / G -- I
-- --

-- F
-- A
--
--
-
-

7
ULADECH -Matemtica Discreta Ing. Gallo Rodrguez Walter

Giro hacia la izquierda:

-- J
-

-- E \ M
--

/ C / H --- S
\ K
-

/ U
/ B -- / G -- O
D -- I -- L
-- --
-- --
-- N -- R -- T
-- F
-- A -- -- --
--
--
-
-

EJERCICIOS RBOLES AVL


1. Dada la secuencia de claves enteras 20, 10, 30, 5, 25, 12, 3, 35, 22, 11, 6, 2. Representa
grficamente el rbol AVL correspondiente e indica en qu momento se efectu una rotacin.

2. Dada la secuencia de claves enteras: 100, 29, 71, 82, 48, 39, 101, 22, 46, 17, 3,20, 25, 10.
Representa grficamente el rbol AVL Correspondiente.

3. Determina cules de los siguientes rboles binarios de bsqueda son AVL. En el caso de que no
lo sean, encuentra todos los nodos que violen los requerimientos de AVL.

4. Inserta las claves en el orden indicado a fin de incorporarlas a un rbol AVL.


a) 10, 100, 20, 80, 40, 70
b) 5, 10, 20, 30, 40, 50, 60
c) 50, 100, 40, 5, 110, 20, 60, 65
d) 10, 100, 20, 90, 30, 80, 40, 70, 50, 60
e) 100, 90, 80, 70, 60, 50, 40, 30, 20, 10

También podría gustarte