Trabajo estructura de_datos

17
ESTRUCTURA DE DATOS

description

tarea de estructura de datos

Transcript of Trabajo estructura de_datos

Page 1: Trabajo estructura de_datos

ESTRUCTURA DE DATOS

Page 2: Trabajo estructura de_datos

Un Grafo es una estructura de datos que representa información de una manera no lineal ni jerárquica un grafo se representa mediante una serie de puntos (los vértices) conectados por líneas (las aristas).

Un grafo dirigido G consiste en un conjunto de vértices V y un conjunto de arcos o aristas A. Los vértices se denominan también nodos o puntos. Un arco, es un par ordenado de vértices (V,W) donde V es el vértice inicial y W es el vértice terminal del arco. Un arco se expresa como: V–>W Si los pares de nodos en los arcos dirigidos, el grafo se denomina grafo directo, dirigido o dígrafo.

Page 3: Trabajo estructura de_datos

Tipos de Grafos•Grafo regular: Aquel con el mismo grado en todos los vértices. Si ese grado es k lo llamaremos k-regular.Por ejemplo, el primero de los siguientes grafos es 3-regular, el segundo es 2-regular y el tercero no es regular

•Grafo bipartito: Es aquel con cuyos vértices pueden formarse dos conjuntos disjuntos de modo que no haya adyacencias entre vértices pertenecientes al mismo conjunto.

•Grafo completo: Aquel con una arista entre cada par de vértices. Un grafo completo con n vértices se denota Kn.

•Grafo nulo: Se dice que un grafo es nulo cuando los vértices que lo componen no están conectados, esto es, que son vértices aislados.

Page 4: Trabajo estructura de_datos

Lazo o bucle es aquel cuyas terminales son el mismo nodo; suponiendo G(N, S) un grafo y N´ un subconjunto de N así mismo S´ un subconjunto de S cuyas terminales pertenecen a N.

LAZO O BUCLE

Page 5: Trabajo estructura de_datos

Un camino en un grafo es una sucesión finita en la que aparecen alternadamente vértices y aristas de dicho grafo. Otras definiciones básicas son:

Los extremos son los vértices iniciales y final del camino.

La longitud de un camino es el número de aristas que contiene.

Un camino es cerrado si sus extremos coinciden.

Un camino es simple si en la sucesión de vértices no hay ninguno repetido.

Un ciclo es un camino cerrado donde los únicos vértices repetidos son el primero y el último.

Un circuito es un camino cerrado que no repite aristas.

Si en un grafo existe un camino que conecta dos vértices distintos, entonces existe un camino simple con extremos en dichos vértices.

Camino Cerrado

Page 6: Trabajo estructura de_datos

Un Grafo ciclo o simplemente ciclo es un grafo que se asemeja a un polígono de n lados. Consiste en un camino cerrado en el que no se repite ningún vértice a excepción del primero que aparece dos veces como principio y fin del camino. Un Grafo ciclo de n vértices se denota Cn. El número de vértices en un grafo Cn es igual al número de aristas, y cada vértice tiene grado par, por lo tanto cada vértice tiene dos aristas incidentes.

Ciclo Cn C6: Un Grafo Ciclo de longitud 6

Grafo ciclo dirigidoUn grafo ciclo dirigido es una versión dirigida de un grafo ciclo, con todas las aristas orientadas hacia una misma dirección.

Page 7: Trabajo estructura de_datos

En un Grafo ciclo dirigido, el grado de salida del vértice es 1 y el de entrada también es 1.

Page 8: Trabajo estructura de_datos

Un grafo es conexo si cada par de vértices está conectado por un camino; es decir, si para cualquier par de vértices (a, b), existe al menos un camino posible desde a hacia b.Un grafo es doblemente conexo si cada par de vértices está conectado por al menos dos caminos disjuntos; es decir, es conexo y no existe un vértice tal que al sacarlo el grafo resultante sea disconexo.

Page 9: Trabajo estructura de_datos

En términos matemáticos la propiedad de un grafo de ser (fuertemente) conexo permite establecer con base en él una relación de equivalencia para sus vértices, la cual lleva a una partición de éstos en "componentes (fuertemente) conexas", es decir, porciones del grafo, que son (fuertemente) conexas cuando se consideran como grafos aislados. Esta propiedad es importante para muchas demostraciones en teoría de grafos.

Page 10: Trabajo estructura de_datos

Un grafo que no tiene ciclos y que conecta a todos los puntos, se llama un árbol. En un grafo con n vértices, los árboles tienen exactamente n - 1 aristas, y hay nn-2 árboles posibles. Su importancia radica en que los árboles son grafos que conectan todos los vértices utilizando el menor número posible de aristas. Un importante campo de aplicación de su estudio se encuentra en el análisis filogenético, el de la filiación de entidades que derivan unas de otras en un proceso evolutivo, que se aplica sobre todo a la averiguación del parentesco entre especies; aunque se ha usado también, por ejemplo, en el estudio del parentesco entre lenguas.

Un árbol dirigido es un grafo dirigido que sería un árbol si no se consideraran las direcciones de las aristas. Algunos autores restringen la frase al caso en el que todos las aristas se dirigen a un vértice particular, o todas sus direcciones parten de un vértice particular.

Page 11: Trabajo estructura de_datos

Un árbol recibe el nombre de árbol con raíz si cada vértice ha sido designado raíz, en cuyo caso las aristas tienen una orientación natural hacia o desde la raíz. Los árboles con raíz, a menudo con estructuras adicionales como orden de los vecinos de cada vértice, son una estructura clave en informática.

Un árbol etiquetado es un árbol en el que cada vértice tiene una única etiqueta. Los vértices de un árbol etiquetado de n vértices reciben normalmente las etiquetas {1,2, ..., n}.

Un árbol regular (homogéneo) es un árbol en el que cada vértice tiene el mismo grado

Page 12: Trabajo estructura de_datos

En teoría de grafos, un grafo completo es un grafo simple donde cada par de vértices está conectado por una arista.

Un grafo completo de n vértices tiene n(n − 1) / 2 aristas, y se nota Kn. Es un grafo regular con todos sus vértices de grado n − 1. Ningún grafo completo tiene lazos y está conectado totalmente, por ende, la única forma de hacer disconexo el grafo con una eliminación de vértices es aplicarla a todos.

GRAFOS ETIQUETADOS

En ciertos casos es necesario asociar información a los arcos del grafo. Esto se puede lograr mediante una etiqueta que contenga cualquier información útil relativa al arco, como el nombre, peso, coste o un valor de cualquier tipo de datos dado. En este caso hablamos de grafos etiquetados. Esta etiqueta podría significar el tiempo que se tarda el vuelo entre dos ciudades o indicar cuáles son los parámetros de entrada y de salida en la llamada a un subprograma.

Page 13: Trabajo estructura de_datos

En el caso del grafo que representa el sentido del tráfico se pueden etiquetar los arcos con el nombre de las calles.

Page 14: Trabajo estructura de_datos

Un multígrafo o pseudografo es un grafo que está facultado para tener aristas múltiples; es decir, aristas que relacionan los mismos nodos. De esta forma, dos nodos pueden estar conectados por más de una arista. Formalmente, un multígrafo G es un par ordenado G:=(V, E) donde:•V es un conjunto de vértices o nodos •E es un multiconjunto de pares no ordenados de nodos, llamados aristas o líneas.

Ejemplo. Los multígrafos podrían usarse, por ejemplo, para modelar las posibles conexiones de vuelo ofrecidas por una aerolínea. Para este caso tendríamos un grafo dirigido, donde cada nodo es una localidad y donde pares de aristas paralelas conectan estas localidades, según un vuelo eshacia o desde una localidad a la otra.

Page 15: Trabajo estructura de_datos

Una matriz de adyacencia es una matriz M de dimensión n*n, en donde n es el número de vértices que almacena valores booleanos, donde M [i,j] es verdadero (o contiene un peso) si y solo si existe un arco que vaya del vértice i al vértice j. La inicialización llevaría un tiempo del O (#(V2)).

Construcción de la matriz a partir de un grafo•Se crea una matriz cero, cuyas columnas y filas representan los nodos del grafo.

•Por cada arista que une a dos nodos, se suma 1 al valor que hay actualmente en la ubicación correspondiente de la matriz.

Page 16: Trabajo estructura de_datos

Si tal arista es un bucle y el grafo es no dirigido, entonces se suma 2 en vez de 1.

Finalmente, se obtiene una matriz que representa el número de aristas (relaciones) entre cada par de nodos (elementos).

Existe una matriz de adyacencia única para cada grafo (sin considerar las permutaciones de filas o columnas), y viceversa.

Ejemplo de grafo no dirigido

Figura 1 Ejemplo de grafo no dirigido, para el que se calcula la matriz de adyacencia.

Page 17: Trabajo estructura de_datos

La matriz de adyacencia para el grafo no dirigido de la Figura anterior viene dada por: