Untitled

 avatar
unknown
plain_text
7 days ago
810 B
3
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");
scanf("%d",&no);
printf("enter the distance matrix:\n");
for(int i=0;i<no;i++)
{
for(int j=0;j<no;i++)
{
scanf("%d",&dm[i][j]);
dm[i][j]=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;i<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 info for router:%c\n",i+65);
printf("Dest \tNextHop \tDist\n");
for(int j=0;i<no;j++)
{
printf("%c\t%c\t%d\n",j+65,route[i].from[j]+65,route[i].dist[j]);
}
}
return 0;
}
Editor is loading...
Leave a Comment