Shortest Path
Shortest Path
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
#define N 9
void shortestPath(int graph[N][N], int n, int source)
{
int i,j;
int minDistance,minVertex;
int newDistance;
int* distance = (int*)malloc(n*sizeof(int));
for(i = 0; i < n; i++)
distance[i] = INT_MAX;
distance[source] = 0;
int* visited = (int*)malloc(n*sizeof(int));
for(i = 0; i < n; i++)
visited[i] = 0;
int main()
{
int i,j;
int graph[N][N]={{0,4,0,0,0,0,0,8,0},
{4,0,8,0,0,0,0,11,0},
{0,8,0,7,0,4,0,0,2},
{0,0,7,0,9,14,0,0,0},
{0,0,0,9,0,10,0,0,0},
{0,0,4,14,10,0,2,0,0},
{0,0,0,0,0,2,0,1,6},
{8,11,0,0,0,0,1,0,7},
{0,0,2,0,0,0,6,7,0}};
shortestPath(graph,N,0);
return 0;
}
OUTPUT:
Shortest distance from vertex 0 to vertex 0: 0
Shortest distance from vertex 0 to vertex 1: 4
Shortest distance from vertex 0 to vertex 2: 12
Shortest distance from vertex 0 to vertex 3: 19
Shortest distance from vertex 0 to vertex 4: 21
Shortest distance from vertex 0 to vertex 5: 11
Shortest distance from vertex 0 to vertex 6: 9
Shortest distance from vertex 0 to vertex 7: 8
Shortest distance from vertex 0 to vertex 8: 14