Untitled

 avatar
unknown
plain_text
16 days ago
907 B
2
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;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];
						}
				}
			}
		}
	}
		while(flag);
		for(int i=0;i<no;i++){
			printf("Router info for router: %c\n", i+65);
			printf("Dest \tNext Hop \tDist\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