Árbol avl

Upload: cale-canul

Post on 09-Jan-2016

228 views

Category:

Documents


0 download

DESCRIPTION

descripcion, historia y uso de los arboles AVL

TRANSCRIPT

RBOL AVLUn 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.HISTORIAEl 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 RBOLSea T un rbol binario de bsqueda y sean y sus subrboles, su altura H(T), es: 0 si el rbol T contiene solo la raz 1 + \max(H(), H()) si contiene ms nodosDEFINICIN DE RBOL AVLUn rbol vaco es un rbol AVL1. Si T es un rbol no vaco y y sus subrboles, entonces T es AVL si y solo si: es AVL es AVL |H() - H()| 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.

ROTACIONESEl 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 DERECHADe 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 IZQUIERDADe 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 DERECHALa Rotacin doble a la Derecha son dos rotaciones simples, primero rotacin simple izquierda y luego rotacin simple derecha.

ROTACIN DOBLE A LA IZQUIERDALa Rotacin doble a la Izquierda son dos rotaciones simples, primero rotacin simple derecha y luego rotacin simple izquierda.

INSERCINLa 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 equilibrado3. Desandar el camino de bsqueda, verificando el equilibrio de los nodos, y re-equilibrando si es necesario

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

CONJUNTOSLos conjuntos son una de las estructuras bsicas de las matemticas, y por tanto de la informtica. TEORA BSICA DE CONJUNTOSLa 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 CONJUNTOSExisten 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.

COLASUna 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 COLAEjemplos 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 COLASColas 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