P. 1
ARBOLES Y GRAFOS

ARBOLES Y GRAFOS

|Views: 722|Likes:
Publicado porMartin Cecilio

More info:

Published by: Martin Cecilio on Nov 14, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/26/2013

pdf

text

original

INDICE INDICE ARBOLES Y GRAFOS

1.-Introducción (arboles) ---------------------------------------------------------------------------------------------2 2.-Arboles en general -------------------------------------------------------------------------------------------------2 3.-Características y propiedades de los arboles-----------------------------------------------------------------3 4.-Operaciones de arboles-------------------------------------------------------------------------------------------4 5.-Uso de arboles-------------------------------------------------------------------------------------------------------4 6.-Tipos de arboles-----------------------------------------------------------------------------------------------------4 7.-Representación de arboles generales como binarios ------------------------------------------------------6 8.-Representación de un bosque como árbol binario ---------------------------------------------------------8 9.-Representación de arboles binarios en memoria ----------------------------------------------------------10 10.-Recorrido en arboles binarios ---------------------------------------------------------------------------------12 11.-Arboles binarios de búsqueda ---------------------------------------------------------------------------------13 12.-Inserción en un árbol binario de búsqueda -----------------------------------------------------------------14 13.-Borrado en un árbol binario de búsqueda -------------------------------------------------------------------15 14.-Arboles balanceados ----------------------------------------------------------------------------------------------16 15.-Restructuración en árbol balanceado -------------------------------------------------------------------------16 16.-Inserción en arboles balanceados ------------------------------------------------------------------------------17 17.-Borrado en arboles balanceados -------------------------------------------------------------------------------20 18.-Arboles multicaminos ---------------------------------------------------------------------------------------------21 19.-Grafos------------------------------------------------------------------------------------------------------------------23 20.-Representación de un grafo--------------------------------------------------------------------------------------24

1

ARBOLES Y GRAFOS ESTRUCTURAS NO LINEALES ARBOLES
1.-INTRODUCCION
Al analizar la estructura árbol se introduce el concepto de estructura de ramificación entre nodos. Los arboles representan las estructuras no lineales y dinámicas de datos más importantes en computación. Dinámicas, puesto que la estructura árbol puede cambiar durante la ejecución de un programa. No lineales, puesto que a cada elemento del árbol pueden seguirle varios elementos.

REPRESENTACION DE ARBOLES
Diferentes formas de representar una estructura de árbol. A) diagramas de ven. B) anidación de paréntesis. c) notación decimal de Dewey. D) notación indentada. E) grafo

2.-ARBOLES EN GENERAL
Un árbol es una estructura jerárquica aplicada sobre una colección de elementos u objetos llamados nodos; uno de ellos cuales es conocido como raíz. Además se crea una relación o parentesco entre los nodos dando lugar a términos como padre, hijo, hermano, antecesor, sucesor, ancestro, etcétera. Se utiliza la recursión para definir un árbol porque representa la forma más apropiada y porque además en una característica inherente a los mismos.
2

 Nivel es el número de arcos que deben ser recorrido para llegar a un determinado nodo. Por definición la raíz tiene nivel 1.3. son hermanos.  Grado es el número de descendientes directos de un determinado nodo.  Todo nodo que no tiene ramificaciones (hijos).  Todo nodo que no es raíz. En este cado es común utilizar la expresión X es hijo de Y.  Altura del árbol es el máximo número de niveles de todos los nodos del árbol 3 . si el nodo X apunta al nodo Y. En este caso es común utilizar la expresión X es padre de Y.-CARACTERÍSTICAS Y PROPIEDADES  Todo árbol que no es vacio. si el nodo X es apuntado por el nodo Y. tiene un único nodo raíz. se conoce con el nombre de interior.  Un nodo X es antecesor directo de un nodo Y. ni terminal u hoja. se conoce con el nombre terminal u hoja.  Un nodo X es descendiente directo de un nodo Y. Grado del árbol es el máximo grado de todos los nodos del árbol.  Se dice que todos los nodos que son descendientes directos (hijos) de un mismo nodo (padre).

-OPERACIONES DE ÁRBOLES  Enumerar todos los elementos.  Añadir un subárbol (algunas veces llamada injertar). listar los hijos (si los hay).  Organizar adecuadamente la información.-TIPOS DE ARBOLES Un árbol ordenado: Es aquel en el que las ramas de los nodos están ordenadas.4.  Registrar la historia de un campeonato de tenis. 5. 4 .  Buscar un elemento.-USO DE ARBOLES  Formulas matemáticas. Cada árbol binario tiene un subárbol izquierda y subárbol derecha.  Encontrar la raíz de cualquier nodo.  Eliminar un subárbol (algunas veces llamada podar).  Borrar un elemento.  Análisis de circuitos eléctricos. 6. + A B C ^ / D 3.  Dado un nodo.  Construir un árbol genealógico.  Para numerar los capítulos y secciones de un libro.   Los de grado 2 se llaman árboles binarios.

5 . y donde cualquier número de subárboles puede ser árboles vacíos. a 1 2 3 4 5 b 7 e d 6 8 9 c f h i g Árbol binario completo:  Es un árbol en el que todos sus nodos.Árboles de expresión  Representan un orden de ejecución + + * + 12 9 * A B C * E D 7    Árboles similares: Los que tienen la misma estructura (forma) Árboles Equivalentes: Son los árboles similares y sus nodos contienen la misma información. tienen dos hijos. Árboles n-ario: Es un árbol ordenado cuyos nodos tiene N subárboles. excepto los del ultimo nivel.

UN ÁRBOL BINARIO: Es una estructura de datos en la cual cada nodo siempre tiene un hijo izquierdo y un hijo derecho.-REPRESENTACION DE ARBOLES GENERALES COMO BINARIOS. Número de nodos en un árbol binario completo = 2h–1 (en el ejemplo h = 4. LOS PASOS A SEGUIR PARA CONVERSIÓN DE UN ARBOL GENERAL A UN ARBOL BINARIO: ARBOL GENERAL. Es una información ordenada de tal forma que todos los elementos a la izquierda de la raíz son menores a la raíz y todos lo elementos a la derecha de la raíz son mayores a la raíz. no pueden tener más de dos hijos.  15) esto nos ayuda a calcular el nivel de árbol necesario para almacenar los datos de una aplicación. 6 . 7.

_ Enlazar los hijos de cada nodo en forma horizontal (hermanos)._ Enlazar en forma vertical el nodo padre con el hijo que se encuentra mas a la izquierda. Además. 7 . 2.1. 3. se debe eliminar el vinculo del padre con el resto de sus hijos._Rotar el diagrama resultante. aproximadamente 45 grados hacia la izquierda y así se obtendrá el árbol binario.

-REPRESENTACIÓN DE UN BOSQUE COMO ÁRBOL BINARIO  Un bosque representa un conjunto normalmente ordenado de uno o más arboles generales._ Enlazar los hijos de cada nodo en forma horizontal (hermanos) Antes del enlace Después del enlace 8 ._ Enlazar en forma horizontal las raíces de los distintos arboles generales.  Los pasos a seguir para conversión del bosque a un árbol binario: 1. 2.8.

9 .En forma completa.

-REPRESENTACIÓN DE ARBOLES BINARIOS EN MEMORIA  Existen dos formas tradicional es de representar un árbol binario en memoria: 1. también conocidos como variables dinámicas.4. aproximadamente 45 grados hacia la izquierda y así se obtendrá el árbol binario. Campo donde se almacena la dirección del subárbol izquierdo del nodo t Campo donde se almacena la información de interés del nodo Campo donde se almacena la dirección del subárbol derecho del nodo t 10 ._Rotar el diagrama resultante. 9._Por medio de datos tipo puntero.

nil 11 ._por medio de arreglos.nil crear(p) en caso contrario q(li) <-. Procedimiento crear(q:nodo) inicio mensaje("Rama izquierda?") lee(respuesta) si respuesta = "si" entonces new(p) q(li) <-.Ejemplo 2.

-RECORRIDO DE ARBOLES BINARIOS 1.mensaje("Rama derecha?") lee(respuesta) si respuesta="si" entonces new(p) q(ld)<--p crear(p) en caso contrario q(ld) <--nil fin INICIO new(p) raiz<--p crear(p) FIN 10. Recorrido en postorden  Recorrer el subárbol izquierdo 12 .-Recorrido en inorden  Recorrer el subárbol izquierdo  Visitar la raíz  Recorrer el subárbol derecho 3.-Recorrido en preorden  Visitar la raíz  Recorrer el subárbol izquierdo  Recorrer el subárbol derecho 2.

De forma similar. En las listas. Formalmente se define un árbol binario de búsqueda de las siguientes manera”Para todo nodo T del árbol debe cumplirse que todos los valores de los nodos del subárbol izquierdo de T serán menores al valor del nodo T. pero las operaciones de inserción y eliminación resultan costosas. Recorrer el subárbol derecho  Visitar la raíz EJEMPLO DE RECORRIDO EN ARBOLES BINARIOS 11.-ARBOLES BINARIOS DE BÚSQUEDA El árbol binario de búsqueda es una estructura sobre la cual se pueden realizar eficientemente las operaciones de búsqueda.” EJEMPLO DE ARBOL BINARIO DE BUSQUEDA 13 . Ventajas: En un arreglo es posible localizar datos eficientemente si estos se encuentran ordenados. dichas operaciones se pueden llevar a cabo con facilidad. sin embargo la búsqueda es una operación bastante costosa que incluso nos puede llevar a recorrer todos los elementos de ella para localizar uno en particular. inserción y eliminación. todos los valores de los nodos del subárbol derecho de T deben ser mayores al valor del nodo T.

 2. debe avanzarse hacia el subárbol derecho. EJEMPLO DE INSERCIÓN EN UN ÁRBOL BINARIO DE BÚSQUEDA 14 .2. en cuyo caso procederá a insertar el elemento en lugar en el lugar que le corresponde.-Debe compararse la clave a insertar con la raíz del árbol.12. Si es mayor.  2. Si es menor. cuyo caso no se realiza la inserción. La estructura crece conforme se inserten elementos al árbol.-INSERCIÓN EN UN ÁRBOL BINARIO DE BÚSQUEDA La inserción es una operación que se puede realizar eficientemente en un árbol binario de búsqueda.-Repetir sucesivamente el paso 1 hasta que se cumpla alguna de las siguientes condiciones:  2. debe avanzarse hacia el subárbol izquierdo. Los pasos que deben realizarse para insertar un elemento a un árbol binario de búsqueda son los siguientes:  1.-La clave que quiere insertarse es igual a un nodo del árbol.1. o el subárbol izquierdo es igual a vacio.-El subárbol derecho es igual a vacio.

izq = null  Caso 2 Si el elemento a borrar tiene un solo hijo. simplemente se elimina. aux = aux. 1. Si el elemento a borrar tiene un solo hijo. entonces tiene que sustituirlo por el hijo 15 . Si el elemento a borrar es Terminal (hoja).-BORRADO EN UN ÁRBOL BINARIO DE BÚSQUEDA Para eliminar un nodo existen los siguientes casos: 1. 3. Caso 1 Si el elemento a borrar es terminal (hoja).13. 2. Si el elemento a borrar tiene los dos hijo.

Si la rotación es simple puede realizarse por las ramas derechas (RDD: Rotación Derecha Derecha) o por 16 . 15. entonces se tienen que sustituir por el nodo que se encuentra más a la izquierda en el subárbol derecho. Un árbol balanceado es un árbol binario en el cual las alturas de los dos subárboles para cada nodo nunca difieren en más de una unidad. 1 ó 0. Si FE llegara a tomar los valores de –2 ó 2. se afectan tres. dos matemáticos rusos Adelson-Velskii y Landis. Estos árboles también nombrados recientemente AVL en honor a sus inventores. Factor de Equilibrio El Factor de Equilibrio (FE) o de Balance (FB) de un nodo se define como la altura del SAD menos la altura del SAI correspondiente. Caso 3 Si el elemento a borrar tiene dos hijos. El Factor de Equilibrio de cada nodo en un árbol balanceado será –1.-REESTRUCTURACIÓN DE ARBOLES AVL Reestructurar un árbol balanceado significa rotar los nodos del mismo. 14. En el primer tipo de rotación se involucran dos nodos y en el segundo. entonces debería reestructurarse el árbol. La rotación puede ser simple o compuesta. o por el nodo que se encuentra más a la derecha en el subárbol izquierdo. La idea central de estos es la de realizar reacomodó o balanceos después de inserciones o eliminaciones de elementos.-ARBOLES BALANCEADOS Con el objeto de mejorar el rendimiento en la búsqueda surgen los árboles balanceados.

1. Si hSAD > hSAI a) Si se inserta un elemento en SAI entonces hSAD será igual a hSAI Las ramas tienen la misma altura por lo que se mejora el equilibrio 17 . El SAI y el SAD del árbol balanceado tienen la misma altura (hSAD = hSAI): a) Si se inserta un elemento en SAI entonces hSAD será menor que hSAI b) Si se inserta un elemento en SAD entonces hSAD será mayor que hSAI Ya sea para a) o para b).las ramas izquierdas (RII: Rotación Izquierda Izquierda).-INSERCIÓN EN ÁRBOLES BALANCEADOS CASO 1. 16. CASO 2. El SAI y el SAD del árbol balanceado tienen altura diferente (hSAD ≠ hSAI): CASO 2. Si la rotación es compuesta puede realizarse por las ramas derecha e izquierda (RDI: Rotación Derecha Izquierda) o por las ramas izquierda y derecha (RID: Rotación Izquierda Derecha). no se viola el criterio de equilibrio o balance del árbol.

2) Se calcula su FE. hasta localizar el lugar donde hay que insertar el elemento.b) Si se inserta un elemento en SAD entonces el árbol debe ser reestructurado Las ramas están desequilibradas por lo que se requiere reestructuración CASO 2. se regresa por el camino de búsqueda calculando el FE de todos los demás nodos que componen el árbol. Ejemplo de Inserción de Nodos con Árboles AVL Se insertara la siguiente secuencia: 65. 82. que será cero (pues el elemento recién insertado posee SAI y SAD vacíos). Si hSAD < hSAI a) Si se inserta un elemento en SAI entonces el árbol debe ser reestructurado Las ramas están desequilibradas por lo que se requiere reestructuración b) Si se inserta un elemento en SAD entonces hSAD será igual a hSAI Las ramas tienen la misma altura por lo que se mejora el equilibrio Para poder determinar si un árbol está balanceado debe calcularse el FE de cada nodo del árbol. 68 y 39 18 . El proceso termina al llegar a la raíz del árbol.2. 23. El proceso de inserción en un árbol balanceado consta de los siguientes pasos: 1) Primero debe seguirse el camino de búsqueda del árbol. 70. en cuyo caso no es necesario determinar el FE de los nodos restantes. Si en alguno de los nodos se viola el criterio de equilibrio entonces debe reestructurarse el árbol. 50. Luego. o cuando se realiza la reestructuración del mismo.

19 .

entonces tiene que sustituirse por el nodo que se encuentra más ala izquierda en el subárbol derecho o por el nodo que se encuentra más ala derecha en el subárbol izquierdo. entonces tiene que sustituirse por ese descendiente._Si el elemento a borrar tiene un solo descendiente. La eliminación de la clave 10 es un proceso sencillo por que no contiene hijos 2. simplemente se suprime. 1._Si el elemento a borrar tiene los dos descendientes.-BORRADO EN ARBOLES BALANCEADOS  Consiste en quitar un nodo del árbol sin violar los principios que define justamente un árbol balanceado.17. 20 ._Si el elemento a borrar es terminal u hoja. 3.

La eliminación de clave con dos descendientes. 21 . Este define el máximo de claves e hijos que cada nodo puede tener.Al eliminar la clave 39 se origina el caso más difícil de borrado en arboles.-ARBOLES MULTICAMINOS Es la generalización del Árbol Binario Cada nodo puede almacenar (n) claves y tener n+1 hijos El árbol B es un tipo especial de árbol multicamino Es útil en sistemas de Archivos y para manejar Sistemas de Bases de Datos Permiten almacenar grandes cantidades de datos Que no entran en memoria secundaria Se aplica para la organización de índices o claves De tal forma que el acceso a esos datos Usando dispositivos externos (no en memoria principal) Tengan un costo relativamente bajo Características Posee un orden m. Se opta por sustituir dicha clave por el nodo que se encuentra más ala derecha en el subárbol izquierdo 18.

puede almacenar hasta n-1 claves Y la raíz Tiene máximo: m ramas Y mínimo: 2 ramas. redondeado Si posee un número n de ramas. Todas sus hojas están en el mismo nivel Cada página interna Posee máximo: m ramas Y Mínimo: m/2 ramas. o 0 si solo existe el nodo raíz 22 .Cada nodo se denomina página Es un árbol lleno (y balanceado).

B). Grafo con 5 vértices y 6 arcos. E } Arcos del Grafo R={(A. Vértices del Grafo N ={ A. (A. C). pueden ser cables o conexiones inalámbricas). EJEMPLO Una red de computadoras puede representarse y estudiarse mediante un grafo. C).D. (C. C. E)} Permiten estudiar las interrelaciones entre unidades que interactúan unas con otras. relacionados entre sí por un conjunto R de arcos. en el cual los vértices representan terminales y las aristas representan conexiones (las cuales. llamados vértices. A). que representa un conjunto finito N de nodos. (A. D).A. (A. D. (D. 23 .19. a su vez.-GRAFOS Graph es un T. B.

20.-REPRESENTACIÓN DE UN GRAFO Existen dos maneras conocidas para representar un grafo Una colección de listas de adyacencia Representada con un arreglo de listas encadenadas con length igual al número de estados Una matriz de adyacencia Con casillas que representan las relaciones de todos los estados con todos los estados. LISTA DE ADYACENCIA  una matriz  Tiene muchos vértices y  Pocos arcos  La Matriz de Adyacencia ○ Tendrá demasiados ceros ○ Ocupara mucho espacio  Los vértices  Pueden formar una lista. no un vector  Los arcos  Son relaciones entre vértices  Se pueden representar con una lista x cada vértice 24 .

Cada fila y cada columna de la matriz corresponden con un vértice en particular. no existe arco del vértice i al vértice j. j) es falso. 25 . Los elementos de la matriz son booleanos Si el elemento (i.EJEMPLO Matriz de Adyacencia Representa para cada nodo cuáles son sus vértices adyacentes. si el elemento (i. existe un arco que va del vértice i al vértice j y. si existe el arco del vértice i al vértice j existe el arco del vértice j al vértice i. Si el grafo es no orientado. j) es verdadero.

Cada arco de un grafo establece una única relación entre dos nodos. el grafo será vacío. un nodo puede estar relacionado consigo mismo o con otro nodo. o sea. Cada arco se representa a través de un par. donde cada elemento determina uno de los nodos 26 . No existe restricción en la relación que establece un arco.ACLARACIONES Si el conjunto N es vacío.

You're Reading a Free Preview

Descarga
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->