Vous êtes sur la page 1sur 7

INTROCUCCIN

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.

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.
Algoritmo AVL
Los AVL son tambin ABB, de modo que mantienen todas las operaciones que
poseen estos. Las nuevas operaciones son las de equilibrar el rbol, pero eso se
hace como parte de las operaciones de insertado y borrado.

rbol AVL (Adelson-Velskii y Landis)

Un rbol AVL es un ABdB* T en el que todo sub T en el que todo sub-rbol T


cumple rbol T cumple.

Proposicin: - Si T es un rbol AVL con N nodos, entonces:

Fe (T)=0, fe (T)=1 fe (T)=-1

El algoritmo AVL establece rotaciones de 2 nodos A y B en Un rbol binario para


tratar ciertos desequilibrios

RI = rotacin izquierda

RD = rotacin derecha

RID = rotacin izquierda + rotacin derecha

RDI = rotacin derecha + rotacin izquierda

Construccin de un AVL Tras realizar una insercin de ABdB, se comprueba la condicin


de AVL para realizar o no rotacin
Mejoras del Algoritmo AVL
Rotaciones
El reequilibrado se produce de abajo hacia arriba sobre los nodos en los que se
produce el desequilibrio. Pueden darse dos casos: rotacin simple o rotacin
doble; a su vez ambos casos pueden ser hacia la derecha o hacia la izquierda.

Rotacin simple a la derecha

De un rbol de raz (r) y de hijos izquierdo (i) y derecho (d), lo que haremos ser
formar un nuevo rbol cuya raz sea la raz del hijo izquierdo, como hijo izquierdo
colocamos el hijo izquierdo de i (nuestro i) y como hijo derecho construimos un
nuevo rbol que tendr como raz, la raz del rbol (r), el hijo derecho de i (d) ser
el hijo izquierdo y el hijo derecho ser el hijo derecho del rbol (d).

Rotacin simple a la izquierda

De un rbol de raz (r) y de hijos izquierdo (i) y derecho (d), consiste en formar un
nuevo rbol cuya raz sea la raz del hijo derecho, como hijo derecho colocamos el
hijo derecho de d (nuestro d) y como hijo izquierdo construimos un nuevo rbol
que tendr como raz la raz del rbol (r), el hijo izquierdo de d ser el hijo derecho
(i) y el hijo izquierdo ser el hijo izquierdo del rbol (i).
Rotacin doble a la derecha

La Rotacin doble a la Derecha son dos rotaciones simples, primero rotacin


simple izquierda y luego rotacin simple derecha.

Rotacin doble a la izquierda

La Rotacin doble a la Izquierda son dos rotaciones simples, primero rotacin


simple derecha y luego rotacin simple izquierda.

Insercin
La insercin en un rbol de AVL puede ser realizada insertando el valor dado en el
rbol como si fuera un rbol de bsqueda binario desequilibrado y despus
retrocediendo hacia la raz, rotando sobre cualquier nodo que pueda haberse
desequilibrado durante la insercin.
Proceso de insercin:
1 Buscar hasta encontrar la posicin de insercin o modificacin (proceso
idntico a insercin en rbol binario de bsqueda)
2 Insertar el nuevo nodo con factor de equilibrio equilibrado
3 Desandar el camino de bsqueda, verificando el equilibrio de los nodos, y
re-equilibrando si es necesario

Extraccin
El procedimiento de borrado es el mismo que en el caso de rbol binario de
bsqueda. La diferencia se encuentra en el proceso de reequilibrado posterior. El
problema de la extraccin puede resolverse en O (log(n)) pasos. Una extraccin
trae consigo una disminucin de la altura de la rama donde se extrajo y tendr
como efecto un cambio en el factor de equilibrio del nodo padre de la rama en
cuestin, pudiendo necesitarse una rotacin.
Esta disminucin de la altura y la correccin de los factores de equilibrio con sus
posibles rotaciones asociadas pueden propagarse hasta la raz.

Primer Algoritmo AVL


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:

FE = altura subrbol derecho - altura subrbol izquierdo


Por definicin, para un rbol AVL, este valor debe ser -1, 0 1.

Si el factor de equilibrio de un nodo es:

0 -> el nodo est equilibrado y sus subrboles tienen exactamente la misma


altura.
1 -> el nodo est equilibrado y su subrbol derecho es un nivel ms alto.
-1 -> el nodo est equilibrado y su subrbol izquierdo es un nivel ms alto.

Si el factor de equilibrio es necesario reequilibrar.

CONCLUSIONES
Un rbol AVL es un tipo especial de rbol binario ideado por los
matemticos rusos Adelson-Velskii y Landis. Fue el primer rbol de
bsqueda binario auto-balancearle que se ide.

Los rboles AVL estn siempre equilibrados de tal modo que para todos los
nodos, la altura de la rama izquierda no difiere en ms de una unidad de la
altura de la rama derecha o viceversa. Gracias a esta forma de equilibrio (o
balanceo), la complejidad de una bsqueda en uno de estos rboles se
mantiene siempre en orden de complejidad..
EGRAFIA / BIBLIOGRAFIA

https://es.wikipedia.org/wiki/%C3%81rbol_AVL

https://users.dcc.uchile.cl/~bebustos/apuntes/cc30
01/Diccionario/

https://rua.ua.es/dspace/bitstream/10045/4411/20/
ped-06_07-tema3_2.pdf
https://www.infor.uva.es/~cvaca/asigs/doceda/tem
a4.pdf

Vous aimerez peut-être aussi