C Dijakstras
C Dijakstras
h>
//#include<conio.h>
int i,u,count,w,flag[10],min;
for(i=1;i<=n;i++)
flag[i]=0,dist[i]=cost[v][i];
count=2;
while(count<=n)
min=99;
for(w=1;w<=n;w++)
min=dist[w],u=w;
flag[u]=1;
count++;
for(w=1;w<=n;w++)
dist[w]=dist[u]+cost[u][w];
void main()
int v,n,i,j,cost[10][10],dist[10];
//clrscr();
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&cost[i][j]);
if(cost[i][j]==0)
cost[i][j]=infinity;
scanf("%d",&v);
dij(n,v,cost,dist);
for(i=1;i<=n;i++)
if(i!=v)
// getch();
}
OUTPUT
0 3 999 7 999
3 0 4 2 999
04056
72504
999 999 6 4 0
Shortest path :
1->2, cost = 3
1->3, cost = 7
1->4, cost = 5
1->5, cost = 9