Вы находитесь на странице: 1из 14

INSTITUTO TECNOLGICO DE TUXTEPEC

ESTRUCTURA DE DATOS
L.I. THOMAS TORRES RAMREZ

TEMA: ESTRUCTURAS NO LINEALES

UNIDAD 4

PRESENTA: OSVALDO APOLINAR GONZALEZ

ING. EN INFORMTICA

3ER SEMESTRE GRUPO A

TUXTEPEC OAXACA A 9 DE NOVIEMBRE DEL 2011

CONTENIDO

Introduccin

Unidad 4 Estructuras no lineales

4.1 Arboles

4.1.1 Concepto de rbol

4.1.2 Clasificacin de arboles

4.1.3 Operaciones bsicas sobre arboles binarios

4.1.4 Aplicaciones

4.1.5 Arboles balanceados (AVL)

4.2 Grafos 4.2.1 Terminologa de grafos 4.2.2 Operaciones bsicas sobre grafos

Conclusin

Bibliografa

INTRODUCCIN:
La investigacin se realiz con base al tema central que son las estructuras no lineales las cuales esta divididas en rboles y grafos. Los arboles representan las estructuras no lineales y dinmicas de datos ms importantes en computacin. Son dinmicas porque la estructura rbol puede cambiar durante la ejecucin de un programa, y no lineales porque a cada elemento del rbol pueden seguirle varios elementos, a su vez los grafos son un conjunto de nodos. Los conceptos previamente citados sern descritos ms detalladamente a continuacin.

4.1 ARBOLES 4.1.1 CONCEPTO DE ARBOLES


Las listas enlazadas, pilas y colas son estructuras de datos lineales (es decir, secuencias). Un rbol es una estructura de datos bidimensional no lineal, con propiedades especiales. Los nodos de un rbol contienen dos o mas enlaces. Intuitivamente el concepto rbol implica una estructura de modo en que los elementos de informacin estn relacionados entre si a travs de ramas. El rbol genealgico es el concepto tpico ms representativo del concepto de rbol general. En ciencias de la informtica, un rbol es una estructura de datos ampliamente usada que imita la forma de un rbol (un conjunto de nodos conectados). Un nodo es la unidad sobre la que se construye el rbol y puede tener cero o ms nodos hijos conectados a l. Se dice que un nodo a es padre de un nodo b si existe un enlace desde a hasta b (en ese caso, tambin decimos que b es hijo de a). Slo puede haber un nico nodo sin padres, que llamaremos raz. Un nodo que no tiene hijos se conoce como hoja. Los dems nodos (tienen padre y uno o varios hijos) se les conoce como rama. je

Los rboles tienen 3 Recorridos Diferentes los cuales son: * Pre-Orden: La raz se procesa primero, luego el subrbol izquierdo y luego el derecho. * In-Orden: Primero la raz, luego el subrbol izquierdo y luego el derecho. * Post-Orden: Primero el subrbol izquierdo, luego el derecho y luego la raz.

4.1.2 CLASIFICACIN DE ARBOLES

- Arboles binarios: Arboles cuyos nodos contienen dos enlaces (uno de los cuales puede ser null). El nodo raz es el primer nodo de un rbol. Cada enlace en el nodo raz hace referencia a un hijo. El hijo izquierdo es el primer nodo en el subrbol izquierdo (tambin conocido como el nodo raz del subrbol izquierdo). El hijo derecho es el primer nodo en el subrbol derecho (tambin conocido como el nodo raz del subrbol derecho). Los hijos de un nodo especifico se llaman hermanos. Un nodo sin hijos se llama nodo hoja. Generalmente, los cientficos computacionales dibujan arboles desde el nodo raz hacia abajo; exactamente lo opuesto a la manera en que crecen los arboles naturales. Recorrido de un rbol binario: - Recorrido: Requiere que cada nodo del rbol sea procesado (visitado) una vez y solo en una secuencia predeterminada. Existen dos enfoques generales para la secuencia de recorrido, profundidad y anchura. Recorrido en profundidad: El proceso exige un camino desde la raz a travs de un hijo, al descendiente ms lejano del primer hijo antes de proseguir a un segundo hijo. En otras palabras, en el recorrido en profundidad, todos los descendientes de un hijo se procesaran antes del siguiente hijo. Recorrido en anchura: El proceso se realiza horizontalmente desde el raz a todos sus hijos, a continuacin a los hijos de sus hijos y as sucesivamente hasta que todos los nodos han sido procesados. En otras palabras, en el recorrido en anchura cada nivel se procesa totalmente antes que comience el siguiente nivel. - Arboles de bsqueda binaria: (Sin valores de nodo duplicado) cuenta con la caracterstica de que los valores en cualquier subrbol izquierdo son menores que el valor del nodo padre de ese subrbol, y el valores en cualquier subrbol derecho son mayores que el valor del nodo padre de ese subrbol.

El rbol de bsqueda binaria facilita la eliminacin de valores duplicados. Al crear un rbol, la operacin de insercin reconoce los intentos de insertar un valor duplicado, ya que este sigue as is as decisi nes de ir a a izquierda ir a a derecha en

cada comparacin, al igual que el valor original. Por lo tanto, la operacin de insercin eventualmente compara el valor duplicado con un nodo que contenga el mismo valor. En este punto, la operacin de insercin puede decidir descartar el valor duplicado.

- Arboles estrechamente empaquetados (o balanceados): En este tipo de arboles, cada nivel contiene cerca del doble de elementos que el nivel anterior.

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

Ejemplo:

- Arboles rojo negro: Un rbol rojo-negro es un rbol binario de bsqueda en el que cada nodo tiene un atributo de color cuyo valor es o bien rojo o bien negro. Adems de los requisitos impuestos a los rboles binarios de bsqueda convencionales, se deben satisfacer los siguientes para tener un rbol rojo-negro vlido: Todo nodo es o bien rojo o bien negro. La raz es negra. Todas las hojas son negras (las hojas son los hijos nulos).

Los hijos de todo nodo rojo son negros (tambin llamada "Propiedad del rojo"). Cada camino simple desde un nodo a una hoja descendiente contiene el mismo nmero de nodos negros, ya sea contando siempre los nodos negros nulos, o bien no contndolos nunca (el resultado es equivalente). Tambin es llamada "Propiedad del camino", y al nmero de nodos negros de cada camino, que es constante para todos los caminos, se le denomina "Altura negra del rbol", y por tanto el camino no puede tener dos rojos seguidos. El camino ms largo desde la raz hasta una hoja no es ms largo que 2 veces el camino ms corto desde la raz del rbol a una hoja en dicho rbol. El resultado es que dicho rbol est aproximadamente equilibrado.

- rbol AA: Los rboles AA son una variacin del rbol rojo-negro, que a su vez es una mejora del rbol binario de bsqueda. A diferencia de los rboles rojo-negro, los nodos rojos en un rbol AA slo pueden aadirse como un hijo derecho. En otras palabras, ningn nodo rojo puede ser un hijo izquierdo.

- Arboles multicamino: Un rbol multicamino posee un grado g mayor a dos, donde cada nodo de informacin del rbol tiene un mximo de g hijos.

4.1.3 OPERACIONES BSICAS SOBRE ARBOLES BINARIOS Enumerar todos los elementos. Buscar un elemento. Dado un nodo, listar los hijos (si los hay). Borrar un elemento. Eliminar un subrbol (algunas veces llamada podar). Aadir un subrbol (algunas veces llamada injertar). Encontrar la raz de cualquier nodo.

Por su parte, la representacin puede realizarse de diferentes formas. Las ms utilizadas son:

Representar cada nodo como una variable en el heap, con punteros a sus hijos y a su padre. Representar el rbol con un array donde cada elemento es un nodo y las relaciones padre-hijo vienen dadas por la posicin del nodo en el array.

4.1.4 APLICACIONES

Los arboles binarios facilitan la bsqueda y ordenamiento de los datos de alta velocidad, la eliminacin eficiente de elementos de datos duplicados, la representacin de directorios del sistema de archivos y la compilacin de expresiones en lenguaje maquina.

El rbol de bsqueda binaria facilita la eliminacin de valores duplicados. Al crear un rbol se reconocen los intentos de insertar un valor duplicado, ya que este sigue las mismas decisiones de ir a a izquierda ir a a derecha en cada c aracin, a

igual que el valor original. Por lo tanto, eventualmente se comprar el valor duplicado con un nodo que contenga el mismo valor. El valor duplicado puede destacarse en este punto.

Otra de las aplicaciones mas importantes es dentro de la inteligencia artificial, y mas concretamente en el rea de reconocimiento de patrones. Se trata de utilizar los arboles para realizar clasificaciones. La clave esta en asignar a cada nodo del rbol un significado. Las distintas ramas tienen asociados criterios que ayudan a determinar el sentido de las bsquedas.

Tambin con aplicables en el anlisis de notaciones algebraicas y la implementacin de algoritmos de compresin, etc.

4.1.5 ARBOLES BALANCEADOS (AVL)

La bsqueda mas eficiente se efecta en un rbol binario balanceado. Desafortunadamente, la funcin Inserta no asegura que el rbol permanezca balanceada, el grado de balance depende del orden en que son insertados los nodos en el rbol. Un rbol esta perfectamente balanceado si su estructura es optima con respecto al largo del camino de la raz a cada hoja: Todas las hojas estn en el mismo nivel, es decir, el largo mximo de tal camino es igual al largo mnimo de tal camino sobre todas las hojas. La altura de un rbol binario es el nivel mximo de sus hojas (profundidad). La altura del rbol uno se define como -1. Un rbol binario balanceado es un rbol binario en el cual las alturas de los subrboles de todo nodo difiere a lo sumo en 1. El balance de un nodo en un rbol binario se define como la altura de su subrbol izquierdo menos la altura de su subrbol derecho. Cada nodo en un rbol binario balanceado tiene balance igual a 1, -1 o 0, dependiendo de si la altura de su subrbol izquierdo es mayor que, menos que o igual a la altura de su subrbol derecho. Supngase que tenemos un rbol binario balanceado, y usamos la funcin para insertar un nodo en dicho rbol. Entonces el rbol resultante puede o no permanecer balanceado. Es fcil ver que el rbol se vuelve desbalanceado si y solo si el nodo recin insertado es un descendiente izquierdo de un nodo que tenia de manera previa balance de 1, o si es un hijo derecho descendiente de un nodo que tenia de manera previa balance -1. Para que el rbol se mantenga balanceado es necesario realizar una transformacin en el mismo de manera que: 1.- El recorrido en orden del rbol transformado sea el mismo que para el rbol original (es decir, que el rbol transformado siga siendo un rbol de bsqueda binaria).

2.- El rbol transformado este balanceado.

Los arboles son estructuras recursivas, por lo que los algoritmos mas eficientes con arboles son los recursivos.

4.2 GRAFOS
Un grafo es una estructura de datos no lineal con la siguiente caracterstica: un nodo puede apuntar a varios y a su vez ser apuntado por otro.

4.2.1 TERMINOLOGA DE GRAFOS Un grafo se compone por un conjunto de V vrtices y un conjunto de A aristas. Cada arista se identifica con el par de vrtices que une. Los vrtices de una arista son entre si nodos adyacentes. - Grado de un nodo: Numero de aristas que contiene ese nodo. Si el grado de un nodo es 0, se dice que es un nodo aislado. - Grado de un grafo: Nmeros de vrtices de ese grafo. - Camino: Un camino C de longitud N de un nodo V1 a un nodo V2, se define como la secuencia de nodos por los que hay que pasar para llegar del nodo V1 a V2. La longitud es el numero de aristas que comprende el camino. El camino es cerrado si empieza y termina en el mismo nodo. El camino es simple si todos los nodos de dicho camino son distintos a excepcin de los de los extremos que pueden ser iguales. - Bucles: Aristas cuyos extremos son idnticos. - Aristas mltiples: Dos o mas aristas que conectan los mismos nodos.

Tipos de grafos: Grafo conectado o conexo: Existe un camino simple entre dos cualquiera de sus nodos. Grafo desconectado: Aquel en que existen nodos que no estn unidos por ningn camino.

Grafo dirigido: Cada arista tiene asignada una direccin (identificada por un par ordenado).

Grafo no dirigido: La arista esta definida por un par no ordenado. Grafo sencillo: Aquel que no tiene ni bucles ni aristas mltiples. Grafo mltiple o multgrafo: Permite la existencia de aristas mltiples o bucles.

Grafo completo: Cada nodo del grafo es adyacente a todos los dems. Grafo etiquetado con peso ponderado: Cada arista tiene asociado un valor denominado peso. Se usa para indicar algn criterio de evaluacin como la longitud o la importancia de la arista respecto a un parmetro.

Peso de un camino: La suma de los pesos de las aristas del camino.

Representacin de los grafos: Existen dos formas de representar un grafo: Con memoria esttica (Matriz adyacente): Matriz de N*N elementos donde N es el numero de nodos del grafo. Cada posicin M(i,j) indica si hay una conexin o no entre los nodos que estn asociados a la posicin i y j de la matriz. Con memoria dinmica. Se utilizan 2 listas enlazadas: *Lista de nodos: Formada por todos lo vrtices *Lista de adyacentes: Contiene las aristas del grafo.

4.2.2 OPERACIONES BSICAS SOBRE GRAFOS

- Bsqueda de un nodo: Se trata de localizar un nodos que contiene una determinada informacin. Para ello le pasamos la informacin al procedimiento de bsqueda y este devuelve su posicin si lo encuentra, o NULL en caso contrario. - Bsqueda de una arista: Se trata de buscar una arista dados sus campos de informacin origen y destino. Devuelve un puntero a la lista de aristas que apunta a esa arista o NULL si no existe.

- Insercin de un nodo: Se recorre el grafo hasta el punto de insercin. A continuacin se actualizan los puntos que salen del nuevo nodo y aquellos que lo apunten a el desde nodos ya existentes. - Insercin de una arista: Primero hay que comprobar si existen los nodos origen y destino, luego hay que comprobar que no exista una arista igual en esa direccin. Por ultimo se realizara la insercin. - Borrado de un nodo: Primero se borra un nodo y despus todas sus aristas.

CONCLUSIN: Tanto los arboles como los grafos son estructuras de datos no lineales, de igual manera tienen la caractersticas de que ambas estructuras estn conformadas por nodos. En si los arboles son estructuras que implican la relacin de sus elementos a travs de ramas mientras que los grafos son estructuras que estn formadas por un conjunto de vrtices y un conjunto de aristas. Por ultimo, los arboles facilitan la bsqueda y ordenamiento de los datos; en tanto los grafos pueden representar diagramas de transformacin de estado, tambin se aplican en diversos campos de investigacin para encontrar el mtodo mas corto y mas rentable.

BIBLIOGRAFA:
DEITEL, HARVEY M. & DEITEL, PAUL J. Quinta edicin Como programar en Java PEARSON EDUCACION, Mxico 2004 ISBN: 970-26-0518-0 rea: Universitarios Formato: 20 X 25.5 cm Paginas: 1268

LEWIS, J. Y CHASEJ. Segunda edicin Estructuras de datos con Java. Diseo de estructuras y algoritmos. PEARSON AddissonWesley. 2006 Pgs. 152-161, 166-174, 180-182, 193-205

TCNICO DE SOPORTE INFORMTICO GRUPO III De la Comunidad de Castilla y Len. Volumen 1 Editor: MAD Eduforma ISBN: 8466550984