distvec.c

 avatar
unknown
c_cpp
15 days ago
812 B
4
Indexable
#include<stdio.h>
struct node
{
int dist[20];
int from[20];
}route[10];
int main()
{
int dm[20][20],no;
printf("enter no of nodes \n");
scanf("%d",&no);
printf("enter the distance matrix:\n");
for(int i=0;i<no;i++)
{
for(int j=0;j<no;j++)
{
scanf("%d",&dm[i][j]);
dm[i][i]=0;
route[i].dist[j]=dm[i][j];
route[i].from[j]=j;
}
}
int flag;
do
{
flag=0;
for(int i=0;i<no;i++)
{
for(int j=0;j<no;j++)
{
for(int k=0;k<no;k++)
{
if((route[i].dist[j])>(route[i].dist[k]+route[k].dist[j]))
{
route[i].dist[j]=route[i].dist[k]+route[k].dist[j];
route[i].from[j]=route[i].from[k];
flag=1;
}
}
}
}
}while(flag);
for(int i=0;i<no;i++)
{
printf("router infoi for router:%c\n",i+65);
printf("dest \t next hop\t dist\n");
for(int j=0;j<no;j++)
printf("%c \t%c\t\t %d\n",j+65,route[i].from[j]+65,route[i].dist[j]);
}
return 0;
}
Editor is loading...
Leave a Comment