DISTANCE VECTOR
ROUTING ALGORITHM
#include<stdio.h>
struct node
{
unsigned
dist[20];
unsigned
from[20];
}
rt[10];
int main()
{
int
dmat[20][20];
int
n,i,j,k,count=0;
printf("\nEnter
the number of nodes : ");
scanf("%d",&n);
printf("\nEnter
the cost matrix :\n");
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
scanf("%d",&dmat[i][j]);
dmat[i][i]=0;
rt[i].dist[j]=dmat[i][j];
rt[i].from[j]=j;
}
do
{
count=0;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
if(rt[i].dist[j]>dmat[i][k]+rt[k].dist[j])
{
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<n;i++)
{
printf("\n\nState
value for router %d is \n",i+1);
for(j=0;j<n;j++)
{
printf("\t\nnode
%d via %d Distance%d",j+1, rt[i].from[j]+1,rt[i].dist[j]);
}
}
printf("\n\n");
}
Output:
Enter the number
of nodes : 4
Enter the cost
matrix :
0 3 5 99
3 0 99 1
5 4 0 2
99 1 2 0
State value for router 1 is
node 1 via 1 Distance0
node 2 via 2 Distance3
node 3 via 3 Distance5
node 4 via 2 Distance4
State value for router 2 is
node 1 via 1 Distance3
node 2 via 2 Distance0
node 3 via 4 Distance3
node 4 via 4 Distance1
State value for router 3 is
node 1 via 1 Distance5
node 2 via 4 Distance3
node 3 via 3 Distance0
node 4 via 4 Distance2
State value for router 4 is
node 1 via 2 Distance4
node 2 via 2 Distance1
node 3 via 3 Distance2
node 4 via 4 Distance0
No comments:
Post a Comment