Está en la página 1de 6

Arboles Binarios AVL:

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

Definicin. Un rbol AVL es un rbol binario de bsqueda que cumple con la condicin de
que la diferencia entre las alturas de los subrboles de cada uno de sus nodos es, como
mucho 1.

Caracterstica:
Un AVL es un ABB
La diferencia entre las alturas de los subrboles derecho e izquierdo no debe
excederse en ms de 1.
Cada nodo tiene asignado un peso de acuerdo a las alturas de sus subrboles
Un nodo tiene un peso de 1 si su subrbol derecho es ms alto, -1 si su subrbol
izquierdo es ms alto y 0 si las alturas son las mismas.
La insercin y eliminacin en AVLs es la misma que en los ABBs.

Emjemplo:

Arbol AVL Arbol No AVL:

Slo el rbol de la izquierda es AVL. El de la derecha viola la condicin de equilibrio en el


nodo 7, ya que su subrbol izquierdo tiene altura3 y su subrbol derecho tiene altura 1.
Equilibrio:
Cada nodo, adems de la informacin que se pretende almacenar, debe tener los dos
punteros a los rboles derecho e izquierdo, igual que los rboles binarios de bsqueda
(ABB), y adems el dato que controla el factor de equilibrio.
El factor de equilibrio es la diferencia entre las alturas del rbol derecho y el izquierdo:

o FE = altura subrbol derecho - altura subrbol izquierdo;


o Por definicin, para un rbol AVL, este valor debe ser -1, 0 1.
o Si el factor de equilibrio de un nodo es:
o 0 -> el nodo est equilibrado y sus subrboles tienen exactamente la misma
altura.
o 1 -> el nodo est desequilibrado y su subrbol derecho es un nivel ms alto.
o -1 -> el nodo est desequilibrado y su subrbol izquierdo es un nivel ms
alto.
Si el factor de equilibrio es necesario reequilibrar.

Balancear:

Caso 1: Rotacin simple izquierda RSI


Si esta desequilibrado a la izquierda y su hijo derecho tiene el mismo signo (+) hacemos
rotacin sencilla izquierda.
Caso 2: Rotacin simple derecha RSD
Ejemplo 2

Hay varios puntos que cabe sealar aqu:


Se conserva el orden apropiado del rbol.
Restablece todos los nodo a equilibrios apropiados AVL
Conserva el recorrido en orden que el rbol anterior.
Slo necesitamos modificar 3 apuntadores para lograr el nuevo equilibrio (con la
de la raz)

Caso 3: Rotacin doble izquierda RDI


Si est desequilibrado a la izquierda (FE < 1), y su hijo derecho tiene distinto
signo (+) hacemos rotacin doble izquierda-derecha.
Ejemplo 1
Caso 3: Rotacin doble izquierda RDI
Ejemplo 2

Caso 4: Rotacin doble derecha RDD


Si esta desequilibrado a la derecha y su hijo izquierdo tiene distinto signo ()
hacemos rotacin doble derecha-izquierda.
Ejemplo 1
Caso 4: Rotacin doble derecha RDD
Ejemplo 2

Insercin

La insercin de un elemento en un rbol AVL es idntica que en un rbol binario de


bsqueda, la diferencia se encuentra en la comprobacin que hay que realizar
posteriormente en los rboles AVL.

En un rbol AVL tras realizar la insercin hay que comprobar que se sigue
manteniendo la condicin de equilibrio, o lo que es lo mismo, que la altura del
subrbol izquierdo y la del subrbol derecho difieran en una unidad o sean iguales.
Si se produce un desequilibrio hay que reequilibrar la estructura para que siga
siendo un rbol AVL.

Borrar
El procedimiento de borrado es el mismo que en el caso de rboles binarios de
bsqueda. La diferencia se encuentra en el proceso de reequilibrado posterior. Este
proceso es idntico al que se realiza en la insercin, la nica diferencia es que en la
insercin tras realizar una rotacin el rbol ya estaba equilibrado, mientras que en
el borrado puede ser necesario realizar mas de una rotacin.
Ejemplo:
Si eliminamos del siguiente rbol el nodo 3, el rbol se desequilibra en el nodo 2.
Tras aplicar una rotacin simple, el rbol resultante es: