CNCS LAB - Part A - Distance Vector Routing and Dijkastra's Algorithm Experminets
CNCS LAB - Part A - Distance Vector Routing and Dijkastra's Algorithm Experminets
Aim: To write a program for Distance Vector algorithm to find suitable path for transmission.
#include<stdio.h>
#include<stdlib.h>
int main ()
{
int d [10][10], t[10][10], a[10][10], i, j, n, k,
count; printf ("Enter the number of nodes\n");
scanf ("%d", &n);
printf ("Enter the initial cost matrix\n");
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
scanf("%d", &d[i][j]);
d[i][i] = 0;
t[i][j] = d[i][j];
a[i][j] = j;
}
}
do
{
count = 0;
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
{
for(k=1; k<=n; k++)
{
if(t[i][j]>(d[i][k]+t[k][j]))
{
t[i][j] = (t[i][k] + t[k][j]);
a[i][j] = k;
count++;
}
}
}
}
}while(count!=0);
Initially:
Node 1 Node 2 Node 3 Node 4 Node 5
Node 2 7 0 1 999 8
Node 5 1 8 999 2 0
Finally:
Node 1 Node 2 Node 3 Node 4 Node 5
Node 1 0 6 5 3 1
Node 2 6 0 1 3 5
Node 3 5 1 0 2 4
Node 4 3 3 2 0 2
Node 5 1 5 4 2 0
Output:
Enter the number of nodes : 5
For router 1
to node 1, via 1, Distance -> 0
to node 2, via 5, Distance -> 6
to node 3, via 5, Distance -> 5
to node 4, via 5, Distance -> 3
to node 5, via 5, Distance -> 1
For router 2
to node 1, via 3, Distance -> 6
to node 2, via 2, Distance -> 0
to node 3, via 3, Distance -> 1
to node 4, via 3, Distance -> 3
to node 5, via 3, Distance -> 5
For router 3
to node 1, via 4, Distance -> 5
to node 2, via 2, Distance -> 1
to node 3, via 3, Distance -> 0
to node 4, via 4, Distance -> 2
to node 5, via 4, Distance -> 4
For router 4
to node 1, via 5, Distance -> 3
to node 2, via 3, Distance -> 3
to node 3, via 3, Distance -> 2
to node 4, via 4, Distance -> 0
to node 5, via 5, Distance -> 2
For router 5
to node 1, via 1, Distance -> 1
to node 2, via 4, Distance -> 5
to node 3, via 4, Distance -> 4
to node 4, via 4, Distance -> 2
to node 5, via 5, Distance -> 0
Dijkstra Algorithm
Output: