C Program: Distance Vector Routing Algorithm using Bellman Ford's Algorithm

The gadget spec URL could not be found

C Program / source code for the Distance Vector Routing Algorithm using Bellman Ford's Algorithm

/*Distance Vector Routing in this program is implemented using Bellman Ford Algorithm:-*/#include<stdio.h>struct node
{unsigned dist[20];unsigned from[20];}rt[10];intmain(){int costmat[20][20];int nodes,i,j,k,count=0;printf("\nEnter the number of nodes : ");scanf("%d",&nodes);//Enter the nodesprintf("\nEnter the cost matrix :\n");for(i=0;i<nodes;i++){for(j=0;j<nodes;j++){scanf("%d",&costmat[i][j]);
costmat[i][i]=0;
rt[i].dist[j]=costmat[i][j];//initialise the distance equal to cost matrix
rt[i].from[j]=j;}}do{count=0;for(i=0;i<nodes;i++)//We choose arbitary vertex k and we calculate the direct distance from the node i to k using the cost matrix//and add the distance from k to node jfor(j=0;j<nodes;j++)for(k=0;k<nodes;k++)if(rt[i].dist[j]>costmat[i][k]+rt[k].dist[j]){//We calculate the minimum distance
rt[i].dist[j]=rt[i].dist[k]+rt[k].dist[j];
rt[i].from[j]=k;count++;}}while(count!=0);for(i=0;i<nodes;i++){printf("\n\n For router %d\n",i+1);for(j=0;j<nodes;j++){printf("\t\nnode %d via %d Distance %d",j+1,rt[i].from[j]+1,rt[i].dist[j]);}}printf("\n\n");
getch();}/*A sample run of the program works as:-Enter the number of nodes :3Enter the cost matrix :0 2 72 0 17 1 0For router 1node 1 via 1 Distance 0node 2 via 2 Distance 2node 3 via 3 Distance 3For router 2node 1 via 1 Distance 2node 2 via 2 Distance 0node 3 via 3 Distance 1For router 3node 1 via 1 Distance 3node 2 via 2 Distance 1node 3 via 3 Distance 0*/