Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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.
Ti
Td
sus subrboles,
1. Si T es un rbol no vaco y
Ti
Td
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
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
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
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.
OPERACIONES BSICAS
EJEMPLO