Grafos en lenguaje c

Estructura de datos del grafo

Una lista de adyacencia representa un grafo como una matriz de listas enlazadas. El índice de la matriz representa un vértice y cada elemento de su lista enlazada representa los otros vértices que forman una arista con el vértice.

Representación de listas enlazadas del grafoAquí, 0, 1, 2, 3 son los vértices y cada uno de ellos forma una lista enlazada con todos sus vértices adyacentes. Por ejemplo, el vértice 1 tiene dos vértices adyacentes, el 0 y el 2. Por lo tanto, 1 está enlazado con 0 y 2 en la figura anterior.

Nos mantenemos cerca de la definición básica de un grafo: una colección de vértices y aristas {V, E}. Para simplificar, utilizamos un grafo sin etiquetar en lugar de uno etiquetado, es decir, los vértices se identifican por sus índices 0,1,2,3.

Implementación de gráficos c++

Un grafo es una forma de representar conexiones entre lugares. Matemáticamente, un grafo es una colección de nodos y aristas. Los nodos son lugares que están conectados entre sí por las aristas del grafo. Por ejemplo, si tienes dos pequeñas ciudades conectadas por una carretera de doble sentido, puedes representarlo como un grafo con dos nodos, cada uno de los cuales representa una ciudad, y una arista, la carretera, que conecta las dos ciudades. Además del grafo no dirigido, en el que la arista es una conexión bidireccional, existen grafos dirigidos, en los que las aristas se conectan sólo en un sentido. Por ejemplo, puedes representar el ejemplo anterior de dos ciudades conectadas por una carretera como un grafo dirigido formado por dos nodos y dos aristas, cada una de las cuales conecta uno de los nodos con el otro. En el ejemplo de la ciudad, también puede ser conveniente registrar la distancia entre las dos ciudades; esto puede expresarse añadiendo un “peso” a una arista, que es un número que suele corresponder a la distancia recorrida por una arista (la distancia entre dos nodos).

->  Herramientas digitales para docentes

Gráfico c

Una estructura de datos de grafos consiste en un conjunto finito (y posiblemente mutable) de vértices (también llamados nodos o puntos), junto con un conjunto de pares no ordenados de estos vértices para un grafo no dirigido o un conjunto de pares ordenados para un grafo dirigido. Estos pares se denominan aristas (también llamadas enlaces o líneas), y en el caso de un grafo dirigido también se conocen como aristas, pero a veces también flechas o arcos. Los vértices pueden formar parte de la estructura del grafo o ser entidades externas representadas por índices o referencias enteras.

Los vértices se almacenan como registros u objetos, y cada vértice almacena una lista de vértices adyacentes. Esta estructura de datos permite almacenar datos adicionales en los vértices. Se pueden almacenar datos adicionales si las aristas también se almacenan como objetos, en cuyo caso cada vértice almacena sus aristas incidentes y cada arista almacena sus vértices incidentes.

->  Pathfinder en español illustrator

Una matriz bidimensional, en la que las filas representan vértices de origen y las columnas representan vértices de destino. Los datos de las aristas y los vértices deben almacenarse externamente. Entre cada par de vértices sólo se puede almacenar el coste de una arista.

Gráfico a partir de una lista de aristas

Los grafos se pueden utilizar para modelar cualquier situación en la que tengamos cosas relacionadas entre sí por pares; por ejemplo, todo lo siguiente se puede representar mediante grafos: Árboles genealógicosLos nodos son miembros, con una arista de cada padre a cada uno de sus hijos. Redes de transporteLos nodos son aeropuertos, intersecciones, puertos, etc. Las aristas son vuelos de aerolíneas, carreteras de un solo sentido, rutas de transporte, etc. AsignacionesSupongamos que estamos asignando clases a las aulas. Dejemos que cada nodo sea una clase o un aula, y pongamos una arista de una clase a un aula si la clase está asignada a esa sala. Este es un ejemplo de grafo bipartito, en el que los nodos pueden dividirse en dos conjuntos S y T y todas las aristas van de S a T.

->  Tutoriales para aprender ingles

¿Qué queremos hacer con los grafos? Por lo general, primero tenemos que construir un grafo partiendo de un conjunto de nodos y añadiendo las aristas que necesitemos, y luego queremos extraer información de él, como “¿Está conectado este grafo?”, “¿Cuál es el camino más corto en este grafo de s a t?”, o “¿Cuántas aristas puedo eliminar de este grafo antes de que algunos nodos se vuelvan inalcanzables desde otros nodos?”. Existen algoritmos estándar para responder a todas estas preguntas; la información que necesitan estos algoritmos suele ser (a) dado un vértice u, qué sucesores tiene; y a veces (b) dados los vértices u y v, ¿existe la arista (u,v) en el grafo?

Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad