logo

Grafo y sus representaciones.

¿Qué es la estructura de datos del gráfico?

A Grafico Es una estructura de datos no lineal que consta de vértices y aristas. A los vértices a veces también se les llama nodos y los bordes son líneas o arcos que conectan dos nodos cualesquiera en el gráfico. Más formalmente, un gráfico se compone de un conjunto de vértices ( EN ) y un conjunto de bordes ( Y ). La gráfica se denota por GRAMO(V, mi) .

fcfs

Representaciones de gráficos

Estas son las dos formas más comunes de representar un gráfico:

  1. Matriz de adyacencia
  2. Lista de adyacencia

Matriz de adyacencia

Una matriz de adyacencia es una forma de representar un gráfico como una matriz booleana (0 y 1).



Supongamos que hay norte vértices en el gráfico Entonces, crea una matriz 2D adjMat[n][n] teniendo dimensión n x n.

  • Si hay una arista desde el vértice i a j , marca adjMat[i][j] como 1 .
  • Si no hay arista desde el vértice i a j , marca adjMat[i][j] como 0 .

Representación de gráfico no dirigido a matriz de adyacencia:

La siguiente figura muestra un gráfico no dirigido. Inicialmente, se inicializa toda la Matriz para 0 . Si hay un borde desde el origen al destino, insertamos 1 a ambos casos ( adjMat[destino] y adjMat [ destino]) porque podemos ir en cualquier dirección.

No dirigido_a_matriz_de_adyacencia

Gráfico no dirigido a matriz de adyacencia

Representación de gráfico dirigido a matriz de adyacencia:

La siguiente figura muestra un gráfico dirigido. Inicialmente, se inicializa toda la Matriz para 0 . Si hay un borde desde el origen al destino, insertamos 1 para ese particular adjMat[destino] .

Dirigido_a_matriz_de_adyacencia

Gráfico dirigido a matriz de adyacencia

Lista de adyacencia

Se utiliza una matriz de Listas para almacenar aristas entre dos vértices. El tamaño de la matriz es igual al número de vértices (es decir, n) . Cada índice de esta matriz representa un vértice específico en el gráfico. La entrada en el índice i de la matriz contiene una lista enlazada que contiene los vértices adyacentes al vértice. i .

encadenamiento hacia adelante

Supongamos que hay norte vértices en el gráfico Entonces, crea un conjunto de lista de tamaño norte como listaadj[n].

  • adjList[0] tendrá todos los nodos que están conectados (vecinos) al vértice 0 .
  • adjList[1] tendrá todos los nodos que están conectados (vecinos) al vértice 1 etcétera.

Representación de gráfico no dirigido a la lista de adyacencia:

El siguiente gráfico no dirigido tiene 3 vértices. Entonces, se creará una matriz de lista de tamaño 3, donde cada índice representa los vértices. Ahora, el vértice 0 tiene dos vecinos (es decir, 1 y 2). Entonces, inserte los vértices 1 y 2 en los índices 0 de la matriz. De manera similar, para el vértice 1, tiene dos vecinos (es decir, 2 y 0). Entonces, inserte los vértices 2 y 0 en los índices 1 de la matriz. De manera similar, para el vértice 2, inserte sus vecinos en la matriz de la lista.

Representación gráfica de gráfico no dirigido a lista de adyacencia

Lista de gráfico no dirigido a adyacencia

Representación del gráfico dirigido a la lista de adyacencia:

El siguiente gráfico dirigido tiene 3 vértices. Entonces, se creará una matriz de lista de tamaño 3, donde cada índice representa los vértices. Ahora el vértice 0 no tiene vecinos. Para el vértice 1, tiene dos vecinos (es decir, 0 y 2). Entonces, inserte los vértices 0 y 2 en los índices 1 de la matriz. De manera similar, para el vértice 2, inserte sus vecinos en la matriz de la lista.

Representación gráfica de gráfico dirigido a lista de adyacencia

Gráfico dirigido a la lista de adyacencia