Skip to content

Commit 6d91587

Browse files
committed
I have implemented it.
1 parent 5266e88 commit 6d91587

File tree

1 file changed

+10
-24
lines changed

1 file changed

+10
-24
lines changed

Data Structures/Graphs/Dijkstra.c

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
#include<stdio.h>
22
#define size 50
3+
//Time Complexity :- O((nv)^2)
4+
//Space Complexity :- O(nv)
35
struct vertex{
46
int dist,par,processed;
57
}V[size];
68
int nv;
79
//relax method is used to assign the shortest value to the node.
810
void 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
1617
void 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

Comments
 (0)