Graficar estructura de datos y Algorithms (Ejemplo)
โก Resumen inteligente
La estructura de datos de grafos es una colecciรณn no lineal de vรฉrtices y aristas, donde cada arista conecta un par de vรฉrtices. Los grafos modelan redes del mundo real, como mapas, conexiones sociales y pรกginas web, y admiten numerosos algoritmos potentes.

ยฟQuรฉ es un grรกfico en la estructura de datos?
Un grafo es una estructura de datos no lineal que consta de vรฉrtices y aristas, donde los vรฉrtices contienen la informaciรณn o los datos, y las aristas funcionan como un enlace entre un par de vรฉrtices.
Se utiliza para resolver problemas del mundo real, como encontrar la mejor ruta hacia el destino y la ruta para telecomunicaciones y redes sociales. Los usuarios se consideran nodos en el grafo, y los cables son las aristas que los conectan.
Si las aristas se representan como E y los vรฉrtices se representan como V, entonces el grรกfico G se puede escribir como el conjunto de vรฉrtices y aristas, como G (V, E).
Ejemplo de grรกfico en estructura de datos
Aquรญ tienes un ejemplo sencillo de una estructura de datos de grafo:
Se trata de un grafo simple no dirigido (un tipo de grafo). El conjunto de vรฉrtices es: {A, B, C, D, E, F}. Dos vรฉrtices forman una arista. Por ejemplo, A y B estรกn conectados por una arista. Sin embargo, A y F no estรกn conectados por ninguna arista.
Terminologรญas de grรกficos en la estructura de datos
A continuaciรณn se presentan algunos tรฉrminos importantes utilizados en la estructura de datos de grafos:
| Tรฉrmino | Mareas Ideales para Lecciones |
|---|---|
| Vรฉrtice | Cada elemento de datos se denomina vรฉrtice o nodo. En la imagen anterior, A, B, C, D y E son los vรฉrtices. |
| Borde (Arco) | Los enlaces que conectan dos nodos o vรฉrtices se denominan aristas (arcos). Tienen dos extremos y se representan como (vรฉrticeInicial, vรฉrticeFinal). |
| Borde no dirigido | Es un borde bidireccional. |
| Borde dirigido | Es un borde unidireccional. |
| Borde ponderado | Una arista con un valor. |
| Grado | En un grafo, el nรบmero de aristas conectadas a un vรฉrtice se denomina grado. |
| grado | El nรบmero total de aristas entrantes conectadas a un vรฉrtice. |
| Grado superior | El nรบmero total de aristas salientes conectadas a un vรฉrtice. |
| Auto-bucle | Una arista se denomina autobucle si sus dos extremos coinciden. |
| Proximidad | Se dice que dos vรฉrtices son adyacentes si existe una arista que los conecta. |
Tipos de grรกficos en estructura de datos
Aquรญ estรก la lista de los mรกs comunes. tipos de grรกficos en la estructura de datos:
- Grรกfico dirigido
- Grรกfico no dirigido
- Grรกfico ponderado
- Grรกfico bidireccional
- Grรกfico infinito
- Grรกfico nulo
- Grรกfico trivial
- Grรกfico mรบltiple
- Grรกfico completo
- Grรกfico conectado
- Grรกfico cรญclico
- Grรกfico acรญclico dirigido (DAG)
- Grรกfico de ciclo
- Grรกfica bipartita
- Grรกfico de Euler
- Grรกfico de Hamilton
ยฟCรณmo representar un grafo en una estructura de datos?
Un grafo se suele almacenar en memoria utilizando una de dos representaciones. La elecciรณn de la representaciรณn influye en la cantidad de memoria que utiliza el grafo y en la velocidad de ejecuciรณn de las operaciones habituales.
- Matriz de adyacencia: Una matriz bidimensional V ร V donde la celda [i][j] es 1 (o el peso de la arista) si existe una arista entre el vรฉrtice i y el vรฉrtice j, y 0 en caso contrario. Permite una bรบsqueda de aristas de O(1), pero utiliza un espacio de O(Vยฒ), lo que la hace ideal para grafos densos.
- Lista de adyacencia: Se trata de una matriz de listas donde cada vรฉrtice almacena una lista de sus vรฉrtices vecinos. Utiliza un espacio de O(V + E) y es eficiente para grafos dispersos, razรณn por la cual la mayorรญa de los grafos del mundo real la utilizan.
Puedes leer mรกs sobre esto en el Lista de adyacencia y representaciรณn matricial de un grafo tutorial.
Aplicaciones de la estructura de datos grรกficos
Un grafo tiene muchos casos de uso. Existen muchos algoritmos que utilizan grafos. Estas son algunas de las aplicaciones de los grafos:
- Google Los mapas utilizan grรกficos para encontrar la intersecciรณn de dos carreteras y calcular la distancia entre dos ubicaciones. Por ejemplo, Dijkstra, para encontrar la distancia mรกs corta entre el origen y el destino.
- Facebook utiliza grafos para encontrar los amigos en comรบn de los usuarios. Su algoritmo considera a cada usuario como un nodo de un grafo.
- Para la asignaciรณn de recursos se utiliza un DAG (Grafo Acรญclico Dirigido). Este verifica la dependencia entre los recursos.
- El Google Los motores de bรบsqueda utilizan grรกficos para crear la clasificaciรณn de los sitios web.
- Un mapaping El dispositivo utiliza la estructura de datos de grafo.
- A Router y su protocolo utiliza el grafo para aprender la ruta hacia el destino.

