/* Implementation of Distance Vector Routing */
#include<stdio.h>
#include<string.h>
#include<conio.h>
void main()
{
int i,j,k,n,a[10][10],b[10][10],src,s,d;
char ch;
clrscr();
printf("\n Enter the number of nodes = ");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
{
if(i==j)
a[i][j]=0;
else
{
printf("\n Enter the distance between host : %d and %d ==> ",i,j);
scanf("%d",&a[i][j]);
}
}
}
printf("\n ");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%d\t",a[i][j]);
printf("\n ");
}
do
{
printf("\n Enter the node to display the routing table : ");
scanf("%d",&src);
for(j=1;j<=n;j++)
{
if(src!=j)
{
if(a[src][j]!=0)
printf("\n The shortest path from %d to %d = %d \n",src,j,a[src][j]);
else
printf("\n There is no path from %d to %d \n",src,j);
}
}
printf("\n Do u want to continue(y/n) : ");
scanf("%s",&ch);
}while(ch!='n');
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(a[i][j]>a[i][k]+a[k][j])
a[i][j]=a[i][k]+a[k][j];
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%d\t",a[i][j]);
printf("\n");
}
getch();
}
OUT PUT :
SHOWS A SUBNET
Enter the number of nodes = 6
Enter the distance between host : 1 and 2 ==> 2
Enter the distance between host : 1 and 3 ==> 5
Enter the distance between host : 1 and 4 ==> 1
Enter the distance between host : 1 and 5 ==> 2
Enter the distance between host : 1 and 6 ==> 10
Enter the distance between host : 2 and 1 ==> 2
Enter the distance between host : 2 and 3 ==> 3
Enter the distance between host : 2 and 4 ==> 2
Enter the distance between host : 2 and 5 ==> 3
Enter the distance between host : 2 and 6 ==> 8
Enter the distance between host : 3 and 1 ==> 5
Enter the distance between host : 3 and 2 ==> 3
Enter the distance between host : 3 and 4 ==> 3
Enter the distance between host : 3 and 5 ==> 1
Enter the distance between host : 3 and 6 ==> 5
Enter the distance between host : 4 and 1 ==> 1
Enter the distance between host : 4 and 2 ==> 2
Enter the distance between host : 4 and 3 ==> 3
Enter the distance between host : 4 and 5 ==> 1
Enter the distance between host : 4 and 6 ==> 3
Enter the distance between host : 5 and 1 ==> 6
Enter the distance between host : 5 and 2 ==> 4
Enter the distance between host : 5 and 3 ==> 1
Enter the distance between host : 5 and 4 ==> 1
Enter the distance between host : 5 and 6 ==> 2
Enter the distance between host : 6 and 1 ==> 10
Enter the distance between host : 6 and 2 ==> 8
Enter the distance between host : 6 and 3 ==> 5
Enter the distance between host : 6 and 4 ==> 3
Enter the distance between host : 6 and 5 ==> 2
ROUTING TABLE :
| 1 | 2 | 3 | 4 | 5 | 6 |
1 | 0 | 2 | 5 | 1 | 2 | 10 |
2 | 2 | 0 | 3 | 2 | 3 | 8 |
3 | 5 | 3 | 0 | 3 | 1 | 5 |
4 | 1 | 2 | 3 | 0 | 1 | 3 |
5 | 6 | 4 | 1 | 1 | 0 | 2 |
6 | 10 | 8 | 5 | 3 | 2 | 0 |
Enter the node to display the routing table : 2
The shortest path from 2 to 1 = 2
The shortest path from 2 to 3 = 3
The shortest path from 2 to 4 = 2
The shortest path from 2 to 5 = 3
The shortest path from 2 to 6 = 8
Do u want to continue (y/n) : n
ROUTING TABLE FOR 2 :
| 1 | 2 | 3 | 4 | 5 | 6 |
1 | 0 | 2 | 3 | 1 | 2 | 4 |
2 | 2 | 0 | 3 | 2 | 3 | 5 |
3 | 3 | 3 | 0 | 2 | 1 | 3 |
4 | 1 | 2 | 2 | 0 | 1 | 3 |
5 | 2 | 3 | 1 | 1 | 0 | 2 |
6 | 4 | 5 | 3 | 3 | 2 | 0 |
No comments:
Post a Comment