11#include <stdio.h>
22#define size 50
3+ //Time Complexity :- O((nv)^2)
4+ //Space Complexity :- O(nv)
35struct vertex {
46 int dist ,par ,processed ;
57}V [size ];
68int nv ;
79//relax method is used to assign the shortest value to the node.
810void relax (int w [size ][size ],int u ,int v ){
9- //printf("RELAX %d %d\n",u,v);
1011 if (V [v ].dist > V [u ].dist + w [u ][v ]){
1112 V [v ].dist = V [u ].dist + w [u ][v ];
1213 V [v ].par = u ;
1314 }
1415}
15-
16+ //setting the source value to zero
1617void initializeSingleSource (int src ){
1718 int i ;
1819 for (i = 0 ; i < nv ; i ++ ){
19- //printf("HERE ");
2020 V [i ].dist = 99999 ;
2121 V [i ].par = -1 ;
2222 V [i ].processed = 0 ;
@@ -29,25 +29,24 @@ void dijkstra(int w[size][size],int src){
2929 initializeSingleSource (src );
3030 for (i = 0 ; i < nv ; i ++ ){
3131 dmin = 999999 ;
32- //printf("HERE ");
3332 for (k = 0 ; k < nv ; k ++ ){
3433 if (!V [k ].processed && V [k ].dist < dmin ){
3534 dmin = V [k ].dist ;
3635 ver = k ;
3736 }
38- // printf("K LOOP %d %d %d %d \n",k,ver,V[k].processed,V[k].dist);
37+
3938 }
40- //printf("BETWEEN K AND J LOOP\n");
39+
4140 for (j = 0 ; j < nv ; j ++ ){
42- //printf("j = %d V[j].processed = %d w[ver][j] = %d ",j,V[j].processed,w[ver][j]);
41+
4342 if (!V [j ].processed && w [ver ][j ]){
4443 relax (w ,ver ,j );
45- // printf("J LOOP %d \n",ver);
44+
4645 }
47- // printf("J LOOP END\n");
46+
4847 }
4948 V [ver ].processed = 1 ;
50- //printf("I LOOP %d \n",V[ver].processed);
49+
5150 }
5251}
5352
@@ -65,20 +64,7 @@ int main(){
6564 int w [size ][size ];
6665 printf ("ENTER NO. OF VERTICES \n" );
6766 scanf ("%d" ,& nv );
68- // int w[5][5] = {{0,10,0,5,0},
69- // {0,0,1,2,0},
70- // {0,0,0,0,4},
71- // {0,3,9,0,2},
72- // {7,0,6,0,0}};
73- // printf("-------- THE WEIGHT MATRIX --------\n");
74- // for(i = 0; i < nv; i++)
75- // {
76- // for(j = 0; j < nv; j++)
77- // {
78- // printf("w[%d][%d] = %d ",i,j,&w[i][j]);
79- // }
80- // printf("\n");
81- // }
67+
8268 printf ("\nENTER THE WEIGHT MATRIX \n" );
8369 for (i = 0 ; i < nv ; i ++ )
8470 {
0 commit comments