You are on page 1of 15

UNIVERSIDAD DE EL SALVADOR FACULTAD DE INGENIERIA Y ARQUITECTURA ESCUELA DE INGENIERIA EN SISTEMAS INFORMATICOS PROGRAMACION II

ESTRUCTURA TIPO RBOLES BALANCEADOS

INSTRUCTOR: Ing. Rodrigo Vsquez. GRUPO TEORICO: 03

INTEGRANTES:

CARNET

FIRMA

Ayala Nez Mario Ernesto mar_ernesto_ayala@hotmail.com Calles Viera Rosario del Carmen carmencita0806@hotmail.com Duran Mena Isabel Astrid astridduran_e@hotmail.com

AN06006

____________

CV06032

____________

DM06025

____________

San Salvador, Lunes 20 de Mayo de 2011.

INDICE

I- INTRODUCCION....................................................................................................i II- OBJETIVOS..........................................................................................................ii III- MARCO CONCEPTUAL......................................................................................5 IV- APLICACION DE LA ESTRUCTURA DE DATOS RBOL BINARIO DE BSQUEDA A UN CASO REAL..................Error: Reference source not found IV. i- ENUNCIADO DEL PROBLEMA................Error: Reference source not found IV. ii- DESARROLLO LOGICO DE LA APLICACIN.. .Error: Reference source not found V. CONLUSIONES..................................................................................................12 VI- BIBLIOGRAFIA 13

INTRODUCCION

El presente trabajo es dedicado al uso de Estructuras Arboles Balanceados (AVL) con el cual se pretende demostrar de forma prctica el manejo de este tipo de herramienta a situaciones cotidianas. Dentro del desarrollo del trabajo marco terico se explica a manera conceptual el manejo de este tipo de estructuras; la forma sobre la cual se realizan las funciones de insercin, reestructuracin, eliminacin de nodos en los arboles AVL, la lgica de solucin de los problemas. En este captulo se muestra de forma general el manejo de las funciones sin importar el tipo de lenguaje sobre el cual se desarrollaran los programas con este tipo de estructuras. Dentro del planteamiento del problema se pretende mostrar un ejemplo completo de las aplicaciones de dicha estructura; as como desarrollar. explicar de manera generalizada el funcionamiento interno de los procesos externos en el programa a

II- OBJETIVOS.

OBJETIVO GENERAL: Analizar y desarrollar la aplicacin de los Arboles Balanceados. El cual permita mostrar la implementacin de la estructura en una situacin real; demostrando la forma en que la estructura funciona.

OBJETIVOS ESPECIFOS: Desarrollar conocimientos adquiridos, en el manejo de estructuras de datos en situaciones reales. Implementar estructuras del tipo Arboles Balanceados. Adquirir conocimientos en el desarrollo de aplicaciones de software. Descubrir el funcionamiento de las estructuras de tipo Arboles Balanceados

ii

MARCO TEORICO
ARBOLES BALANCEADOS (AVL) Un rbol balanceado es un rbol binario en el cual las alturas de los dos subrboles para cada nodo nunca difieren en ms de una unidad. Tambin se le llama arboles AVL en honor a sus inventores, dos matemticos Rusos, G.m. Adelson Velskii y E.M. Landis. Estos rboles binarios balanceados, que nos permiten despus de cada insercin rotar los nodos de forma de que quede ordenado. Bsicamente un rbol AVL es un rbol binario de bsqueda al que se le aade una condicin de equilibrio. Caractersticas: 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 AVL es la misma que en los ABB.

Los AVL utilizan el factor de balanceo para decidir si es necesario rotar una rama luego de insertar.

5 Este Factor de Balanceo o Equilibrio (FB) o (FE), nos dice la diferencia de alturas entre el subrbol derecho menos el subrbol izquierdo, por lo que restando las alturas de los mismos obtenemos este valor. FB = Altura subrbol derecho - Altura subrbol izquierdo El factor de balanceo de cada nodo en un rbol balanceado ser -1, 1 o 0. Si FB llegara a tomar los valores de -2 o 2. Si alguno de los pesos de los nodos se modifica en un valor no vlido (2 o -2) debe seguirse un esquema de rotacin. 2

Figura 1

Figura 2

Analizando la figura, 1 tenemos que la primer rama izquierda tiene un desbalanceo, ya que la altura de su subrama izquierda es -2, y la de la derecha es 0, lo que nos da: FB = -2. Tenemos desbalance. Analizando la figura 2, el FB no supera el valor -1, por lo que no hay necesidad de rotar. Operaciones sobre los AVL: INSERTAR Usamos la misma tcnica para insertar un nodo en un ABB ordenado. Trazamos una ruta desde el nodo raz hasta un nodo hoja (donde hacemos la insercin). Insertamos el nodo nuevo. Volvemos a trazar la ruta de regreso al nodo raz, ajustando el equilibrio a lo largo de ella. Si el equilibrio de un nodo llega a ser + - 2, volvemos a ajustar los subrboles de los nodos para que su equilibrio se mantenga acorde con los lineamientos AVL (que son +- 1).

6 BALANCEAR En esta operacin se distinguen los casos de Rotacin Simple o Compuesta: Caso 1: Rotacin simple izquierda RII. Si esta desequilibrado a la izquierda y su hijo derecho tiene el mismo signo (+) hacemos rotacin sencilla izquierda.

Caso 2: Rotacin simple derecha RDD. Si esta desequilibrado a la derecha y su hijo izquierdo tiene el mismo signo (-) hacemos rotacin sencilla derecha.

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

7 Caso 4: Rotacin Compuesta derecha - izquierda RDI. Si esta desequilibrado a la derecha y su hijo izquierdo tiene distinto signo () hacemos rotacin derecha-izquierda.

ELIMINAR Al eliminar un nodo en un rbol AVL puede afectar el equilibrio de sus nodos. Entonces hay que hacer rotaciones simples o compuestos. Eliminas un nodo como lo hacemos en un rbol binario ordenado. Al localizar el nodo que queremos eliminar seguimos este procedimiento: Si el nodo es un nodo hoja, simplemente lo eliminamos. Si el nodo solo tiene un hijo, lo sustituimos con su hijo. Si el nodo eliminado tiene dos hijos, lo sustituimos por el hijo derecho y colocamos el hijo izquierdo en el subrbol izquierdo del hijo derecho. Si el equilibrio del padre del nodo eliminado cambia de 0 a +-1 el algoritmo concluye.

Si en algunos de los nodos se viola el criterio de equilibrio, entonces se debe reestructurarse el rbol. Ejemplos:

8 Figura 1
0 34 0 50

-1 60 1 49 52 0 72 54 0 80 0 0

83

-1

Figura 2
1 50

60 80 52 -1 72 54 0 0 0

34

83

IV- APLICACION DE LA ESTRUCTURA DE DATOS RBOLES BALANCEADOS A UN CASO REAL.

IV. i- ENUNCIADO DEL PROBLEMA.

Se tiene la situacin de una bodega en una empresa X en la cual se registran los productos que entran y salen de la bodega. Estos datos de la empresa los manejan y se encargan de los mismos una unidad especfica, para llevar un mejor control. Se implementara un programa de bsqueda para facilitar el manejo de toda la informacin en relacin al producto, dicha bsqueda se har por medio de un cdigo numrico para facilitar la insercin, eliminacin y bsqueda de dichos productos y modificar los datos necesarios para una operacin u otra.

10

IV. ii- DESARROLLO LOGICO DE LA APLICACIN.

Para la solucin del problema planteado se har uso de la estructuras de datos Arboles Balanceados ya que por lo mencionado anteriormente se debe aplicar una bsqueda rpida y por tanto es aplicable este tipo de estructura tomando en cuenta el factor de equilibrio o balance del rbol reestructurando cuando sea necesario.

El diseo de esta estructura se har en base a memoria dinmica, ya que dada las circunstancias no se debe de limitar el tamao de dicha estructura; En la aplicacin se dispondrn de las funciones como bsqueda, insercin, eliminacin, visualizacin por medio de un men con las opciones anteriores y el tipo de recorrido que se usara es en orden. Se deber validar los datos que se ingresen ya que sern solo numricos por lo que la variable ser tipo int.

11 DECLARACION Y FUNCIONES LOGICAS DE LA ESTRUCTURA AVL IMPLEMENTADA EN C++

V. CONLUSION. La estructura de datos de Arboles Balanceados (AVL) es rpida y eficiente ya que nos permite despus de cada insercin rotar los nodos de forma de que quede ordenado, la cual se le aade una condicin de equilibrio; es representado por nodos, uno de los cuales es la Raz donde esta se despliega dos subrboles el izquierdo y el derecho, dentro del rbol se puede insertar, eliminar y se puede realizar una bsqueda por medio de un recorrido. Esta estructura es usada en situaciones donde se requiere encontrar un elemento con una buena rapidez para hacer uso de dicho elemento.

12

VI- BIBLIOGRAFIA.

Estructura de datos con C y C++.

SEGUNDA EDICION YEDIDYAH LAGSAM MOSHE J. AUGENSTEIN. AARON M. TENEMBAUM.

COMO PROGRAMAR EN C/C++

SEGUNDA EDICION H. M. DIITEL/ P. J. DEITEL http://es.wikipedia.org/wiki/%C3%81rbol_binario_de_b%C3%BAsqueda PROGRAMACION EN C METODOLOGIA , ALGORITMOS Y

ESTRUCTURA DE DATOS LUIS JOYANES AGUILAR IGNACIO ZAHONERO MARTINEZ 1 EDICION EDITORIAL McGRAW HILL

13

You might also like