#include<stdio.h> #include<limits.h> typedef enum {false, true} bool; void dijkstra_algo(int g_raph[9][9], int source, int vertices_Count); int minimum_distance(int d_istance[40],bool shortest_path_tree_set[9], int vertices_Count); void p_rint(int d_istance[40], int vertices_Count); int main( ) { int grd[9][9]= { {1,6,10,20,2,30,40,19,50}, {3,40,4,20,50,4,20,1,60}, {40,67,40,12,10,23,30,20,56}, {10,60,25,30,19,116,70,80,90}, {40,30,20,29,10,10,40,50,70}, {20,40,62,60,120,50,22,21,80}, {40,40,50,116,20,32,40,21,16}, {59,141,60,20,60,20,171,50,85}, {60,80,32,40,60,70,64,75,40} }; digikstra_algo(g_raph,0,9); return 0; } int minimum_distance(int d_istance[40], bool shortest_path_tree_set[9], int vertice_Count) { int v; int min = INT_MAX; int min_Index = 0; for(v=0;v<vertice_Count;++v) { if (shortest_path_tree_set[v]==false && d_istance[v]<=min) { min = d_istance[v]; min_Index = v; } } return min_Index; } void p_rint(int d_istance[ ], int vertices_Count) { int i; printf(“Distance of Vertex from source is: \n”); for(i=0;i<vertices_Count;++i) { printf(“%d \t %d \n”,i, d_istance[i]); } } void dijkstra_algo(int g_raph[9][9], int source, int vertices_Count) { int count,v,i,j; int d_istance[40]; bool shortest_path_tree_set[9]; for(i=0;i<vertices_Count;i++) { d_istance[i]=INT_MAX; shortest_path_tree_set[i]=false; } d_istance[source]=0; for(count=0;count<vertices_Count-1;++count) { int u = minimum_distance(d_istance, shortest_path_tree_set, vertices_Count); printf(“Minimum Distance value is %d\n”,u); shortest_path_tree_set[u] = true; for(v=0;v<vertices_Count;++v) { printf(“\n”); printf(“the value of v %d”, v); printf(“\n”); if(!shortest_path_tree_set[v]) { printf(“I am in !shortest_path_tree_set[v] if statement \n”); if(d_istance[u]!=INT_MAX) { printf(“I am in d_istance[u]!=INT_MAX if statement \n”); printf(“%d \n”, g_raph[u][v]); printf(“d_istance[v] %d \n”, d_istance[v]); printf(“d_istance[source] %d \n”, d_istance[source]); printf(“d_istance[u] %d \n”, d_istance[u]); printf(“d_istance[u]+g_raph[u][v] %d \n”, d_istance[u]+g_raph[u][v]); if( d_istance[u]+g_raph[u][v] < d_istance[v] ) { printf(“I am in d_istance[u]+graph[u][v]<d_istance[v] If statement \n”); d_istance[v]=d_istance[u]+g_raph[u][v]; printf(“d_istance[v] %d \n”, d_istance[v]); } } } } p_rint(d_istance,vertices_Count); }
Output: Minimum Distance value is 0 the value of v 0 the value of v 1 I am in !shortest_Path_Tree_Set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 6 d_istance[v] 2147483647 d_istance[source] 0 d_istance[u] 0 d_istance[u]+g_raph[u][v] 6 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 6 the value of v 2 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 10 d_istance[v] 2147483647 d_istance[source] 0 d_istance[u] 0 d_istance[u]+g_raph[u][v] 10 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 10 the value of v 3 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 20 d_istance[v] 2147483647 d_istance[source] 0 d_istance[u] 0 d_istance[u]+g_raph[u][v] 20 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 20 the value of v 4 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 2 d_istance[v] 2147483647 d_istance[source] 0 d_istance[u] 0 d_istance[u]+g_raph[u][v] 2 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 2 the value of v 5 I am in !shortest_path_tree_Set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 30 d_istance[v] 2147483647 d_istance[source] 0 d_istance[u] 0 d_istance[u]+g_raph[u][v] 30 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 30 the value of v 6 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 40 d_istance[v] 2147483647 d_istance[source] 0 d_istance[u] 0 d_istance[u]+g_raph[u][v] 40 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 40 the value of v 7 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 19 d_istance[v] 2147483647 d_istance[source] 0 d_istance[u] 0 d_istance[u]+g_raph[u][v] 19 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 19 the value of v 8 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 50 d_istance[v] 2147483647 d_istance[source] 0 d_istance[u] 0 d_istance[u]+g_raph[u][v] 50 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 50 Vertex Distance from source: 0 0 1 6 2 10 3 20 4 2 5 30 6 40 7 19 8 50 Minimum Distance value is 4 the value of v 0 the value of v 1 I am in !shortest_path_tree_Set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 30 d_istance[v] 6 d_istance[source] 0 d_istance[u] 2 d_istance[u]+g_raph[u][v] 32 the value of v 2 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 0 d_istance[v] 10 d_istance[source] 0 d_istance[u] 2 d_istance[u]+g_raph[u][v] 22 the value of v 3 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 29 d_istance[v] 20 d_istance[source] 0 d_istance[u] 2 d_istance[u]+g_raph[u][v] 31 the value of v 4 the value of v 5 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 10 d_istance[v] 30 d_istance[source] 0 d_istance[u] 2 d_istance[u]+graph[u][v] 12 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 12 the value of v 6 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 40 d_istance[v] 40 d_istance[source] 0 d_istance[u] 2 d_istance[u]+g_raph[u][v] 42 the value of v 7 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 50 d_istance[v] 19 d_istance[source] 0 d_istance[u] 2 d_istance[u]+g_raph[u][v] 52 the value of v 8 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 70 d_istance[v] 50 d_istance[source] 0 d_istance[u] 2 d_istance[u]+graph[u][v] 72 Vertex Distance from source: 0 0 1 6 2 10 3 20 4 2 5 12 6 40 7 19 8 50 Minimum Distance value is 1 the value of v 0 the value of v 1 the value of v 2 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 4 d_istance[v] 10 d_istance[source] 0 d_istance[u] 6 d_istance[u]+g_raph[u][v] 10 the value of v 3 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 20 d_istance[v] 20 d_istance[source] 0 d_istance[u] 6 d_istance[u]+g_raph[u][v] 26 the value of v 4 the value of v 5 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 4 d_istance[v] 12 d_istance[source] 0 d_istance[u] 6 d_istance[u]+g_raph[u][v] 10 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 10 the value of v 6 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 20 d_istance[v] 40 d_istance[source] 0 d_istance[u] 6 d_istance[u]+graph[u][v] 26 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 26 the value of v 7 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 1 d_istance[v] 19 d_istance[source] 0 d_istance[u] 6 d_istance[u]+g_raph[u][v] 7 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 7 the value of v 8 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 60 d_istance[v] 50 d_istance[source] 0 d_istance[u] 6 d_istance[u]+g_raph[u][v] 66 Vertex Distance from source: 0 0 1 6 2 10 3 20 4 2 5 10 6 26 7 7 8 50 Minimum Distance value is 7 the value of v 0 the value of v 1 the value of v 2 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 60 d_istance[v] 10 d_istance[source] 0 d_istance[u] 7 d_istance[u]+g_raph[u][v] 67 the value of v 3 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 20 d_istance[v] 20 d_istance[source] 0 d_istance[u] 7 d_istance[u]+g_raph[u][v] 27 the value of v 4 the value of v 5 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 20 d_istance[v] 10 d_istance[source] 0 d_istance[u] 7 d_istance[u]+g_raph[u][v] 27 the value of v 6 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 71 d_istance[v] 26 d_istance[source] 0 d_istance[u] 7 d_istance[u]+g_raph[u][v] 78 the value of v 7 the value of v 8 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 85 d_istance[v] 50 d_istance[source] 0 d_istance[u] 7 d_istance[u]+g_raph[u][v] 92 Distance of Vertex from source is: 0 0 1 6 2 10 3 20 4 2 5 10 6 26 7 7 8 50 Minimum Distance value is 5 the value of v 0 the value of v 1 the value of v 2 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 62 d_istance[v] 10 d_istance[source] 0 d_istance[u] 10 d_istance[u]+g_raph[u][v] 72 the value of v 3 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 60 d_istance[v] 20 d_istance[source] 0 d_istance[u] 10 d_istance[u]+graph[u][v] 70 the value of v 4 the value of v 5 the value of v 6 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 22 d_istance[v] 26 d_istance[source] 0 d_istance[u] 10 d_istance[u]+g_raph[u][v] 32 the value of v 7 the value of v 8 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 80 d_istance[v] 50 d_istance[source] 0 d_istance[u] 10 d_istance[u]+g_raph[u][v] 90 Distance of Vertex from source is: 0 0 1 6 2 10 3 20 4 2 5 10 6 26 7 7 8 50 Minimum Distance value is 2 the value of v 0 the value of v 1 the value of v 2 the value of v 3 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 12 d_istance[v] 20 d_istance[source] 0 d_istance[u] 10 d_istance[u]+g_raph[u][v] 22 the value of v 4 the value of v 5 the value of v 6 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 30 d_istance[v] 26 d_istance[source] 0 distance[u] 10 d_istance[u]+g_raph[u][v] 40 the value of v 7 the value of v 8 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 56 d_istance[v] 50 d_istance[source] 0 d_istance[u] 10 d_istance[u]+g_raph[u][v] 66 Distance of Vertex from source: 0 0 1 6 2 10 3 20 4 2 5 10 6 26 7 7 8 50 Minimum Distance value is 3 the value of v 0 the value of v 1 the value of v 2 the value of v 3 the value of v 4 the value of v 5 the value of v 6 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 0 d_istance[v] 26 d_istance[source] 0 d_istance[u] 20 d_istance[u]+g_raph[u][v] 90 the value of v 7 the value of v 8 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 90 d_istance[v] 50 d_istance[source] 0 d_istance[u] 20 d_istance[u]+g_raph[u][v] 110 Vertex Distance from source: 0 0 1 6 2 10 3 20 4 2 5 10 6 26 7 7 8 50 Minimum Distance value is 6 the value of v 0 the value of v 1 the value of v 2 the value of v 3 the value of v 4 the value of v 5 the value of v 6 the value of v 7 the value of v 8 I am in !shortest_path_tree_set[v] If statement I am in (bool)g_raph[u,v] If statement I am in d_istance[u]!=INT_MAX If statement 16 d_istance[v] 50 d_istance[source] 0 d_istance[u] 26 d_istance[u]+graph[u][v] 42 I am in d_istance[u]+g_raph[u,v] < d_istance[v] If statement d_istance[v] 42 Distance of vertex from source is: 0 0 1 6 2 10 3 20 4 2 5 10 6 26 7 7 8 42
Leave a Reply