Está en la página 1de 21

RBOL AVL

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-balanceable que se ide.

HISTORIA
El rbol AVL toma su nombre de las iniciales de los apellidos de sus
inventores, Georgii Adelson-Velskii y Yevgeniy Landis. Lo dieron a
conocer en la publicacin de un artculo en 1962, An algorithm for the
organization of information (Un algoritmo para la organizacin de la
informacin).
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 O(log n). El factor
de equilibrio puede ser almacenado directamente en cada nodo o ser
computado a partir de las alturas de los subrboles.
Para conseguir esta propiedad de equilibrio, la insercin y el borrado de
los nodos se ha de realizar de una forma especial. Si al realizar una
operacin de insercin o borrado se rompe la condicin de equilibrio,
hay que realizar una serie de rotaciones de los nodos.
Los rboles AVL ms profundos son los rboles de Fibonacci.

DEFINICIN DE LA ALTURA DE UN RBOL


Sea T un rbol binario de bsqueda y sean

Ti

Td

sus subrboles,

su altura H(T), es:


0 si el rbol T contiene solo la raz
T
T
1 + \max(H( i ), H( d )) si contiene ms nodos

DEFINICIN DE RBOL AVL


Un rbol vaco es un rbol AVL

1. Si T es un rbol no vaco y

Ti

Td

sus subrboles, entonces T

es AVL si y solo si:


Ti

es AVL

Td

|H(

es AVL
Ti

) - H(

Td

)| <= 1

FACTOR DE 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:
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 |Fe| >= 2 es necesario reequilibrar.

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 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.

CONJUNTOS
Los conjuntos son una de las estructuras bsicas de las matemticas, y
por tanto de la informtica.
TEORA BSICA DE CONJUNTOS
La teora de conjuntos ms elemental es una de las herramientas
bsicas del lenguaje matemtico. Dados unos elementos, unos objetos
matemticos como nmeros o polgonos por ejemplo, puede imaginarse
una coleccin determinada de estos objetos, un conjunto. Cada uno de
estos elementos pertenece al conjunto, y esta nocin de pertenencia es

la relacin relativa a conjuntos ms bsica. Los propios conjuntos


pueden imaginarse a su vez como elementos de otros conjuntos. La
pertenencia de un elemento a a un conjunto A se indica como a A.
Una relacin entre conjuntos derivada de la relacin de pertenencia es la
relacin de inclusin. Una subcoleccin de elementos B de un conjunto
dado A es un subconjunto de A, y se indica como B A.
Ejemplos.
Los conjuntos numricos usuales en matemticas son: el conjunto de los
nmeros naturales N, el de los nmeros enteros Z, el de los nmeros
racionales Q, el de los nmeros reales R y el de los nmeros complejos
C. Cada uno es subconjunto del siguiente:

El espacio tridimensional E3 es un conjunto de objetos elementales


denominados puntos p, p E3. Las rectas r y planos son conjuntos de
puntos a su vez, y en particular son subconjuntos de E3, r E3 y E3.
LGEBRA DE CONJUNTOS
Existen unas operaciones bsicas que permiten manipular los conjuntos
y sus elementos, similares a las operaciones aritmticas, constituyendo
el lgebra de conjuntos:
Unin. La unin de dos conjuntos A y B es el conjunto A B que
contiene cada elemento que est por lo menos en uno de ellos.
Interseccin. La interseccin de dos conjuntos A y B es el
conjunto A B que contiene todos los elementos comunes de A y
B.
Diferencia. La diferencia entre dos conjuntos A y B es el conjunto
A \ B que contiene todos los elementos de A que no pertenecen a
B.
Complemento. El complemento de un conjunto A es el conjunto
A que contiene todos los elementos (respecto de algn conjunto
referencial) que no pertenecen a A.
Diferencia simtrica. La diferencia simtrica de dos conjuntos A
y B es el conjunto A B con todos los elementos que pertenecen,
o bien a A, o bien a B, pero no a ambos a la vez.
Producto cartesiano. El producto cartesiano de dos conjuntos A
y B es el conjunto A B que contiene todos los pares ordenados

(a, b) cuyo primer elemento a pertenece a A y su segundo


elemento b pertenece a B.

COLAS
Una cola es de Una Estructura de Datos, caracterizada porcin servicio
Una Secuencia de Elementos en la de Me Operacin de Insercin
empujar s Realiza Por Un Extremo y la Operacin de Extraccin porcin
pop El Otro. Also s le llama Estructura FIFO (del ingls First In First Out),
debido una cola El Primer Elemento en Para entrar Sera also El Primero
en salir.

EJEMPLO DE COLA
Ejemplos de colas en la vida real seran: personas comprando en un
supermercado, esperando para entrar a ver un partido de bisbol,
esperando en el cine para ver una pelcula, una pequea peluquera, etc.
La idea esencial es que son todos lneas de espera.

TIPOS DE COLAS
Colas circulares (anillos): en las que el ltimo elemento y el primero
estn unidos.

Las condiciones que debemos tener presentes al trabajar con este tipo
de estructura son las siguientes:
Over flow, cuando se realice una insercin.
Under flow, cuando se requiera de una extraccin en la cola.
Vacio

ALGORITMO DE INICIALIZACIN

F < -- 0
A<-- 0

Colas de prioridad: En ellas, los elementos se atienden en el orden


indicado por una prioridad asociada a cada uno. Si varios elementos
tienen la misma prioridad, se atendern de modo convencional segn la
posicin que ocupen. Hay 2 formas de implementacin:

Aadir un campo a cada nodo con su prioridad. Resulta


conveniente mantener la cola ordenada por orden de prioridad.
Crear tantas colas como prioridades haya, y almacenar cada
elemento en su cola.

Bicolas: son colas en donde los nodos se pueden aadir y quitar por
ambos extremos; se les llama DEQUE (Double Ended QUEue). Para
representar las bicolas lo podemos hacer con un array circular con Inicio
y Fin que apunten a cada uno de los extremos.

Hay variantes:
Bicolas de entrada restringida: Son aquellas donde la insercin slo se
hace por el final, aunque podemos eliminar al inicio al final.

Bicolas de salida restringida: Son aquellas donde slo se elimina por el


final, aunque se puede insertar al inicio y al final.

OPERACIONES BSICAS

CREAR: se crea la cola vaca.


ENCOLAR (AADIR, ENTRAR, INSERTAR): se aade un
elemento a la cola. Se aade al final de esta.
DESENCOLAR (SACAR, SALIR, ELIMINAR): se elimina el
elemento frontal de la cola, es decir, el primer elemento que entr.
FRENTE (CONSULTAR, FRONT): se devuelve el elemento frontal
de la cola, es decir, el primer elemento que entr.

EJEMPLO

ALGORITMO INSERTAR (COLA, N, FRENTE, FINAL,


ELEMENTO)

ALGORITMO RECORRIDO (COLA, FRENTE, FINAL,


N)

ALGORITMO BSQUEDA (ELEMENTO, COLA, N,


FRENTE, FINAL)

ALGORITMO ELIMINACION (COLA, FRENTE,


FINAL, N)

También podría gustarte