*Author-Neelkant.S.Patil,GMIT,Davanagere*/
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
int i, j, k, n, a[10][10], indeg[10], flag[10], count = 0;
printf("Enter the no of vertices:");
scanf("%d", &n);
printf("Enter the adjacency matrix:");
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
scanf("%d", &a[i][j]);
for (i = 0; i < n; i++)
{
indeg[i] = 0; flag[i] = 0;
}
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
indeg[i] = indeg[i] +
a[j][i]; printf("The topological order is:");
while (count < n)
{
for (k = 0; k < n; k++)
{
if ((indeg[k] == 0) && (flag[k] == 0))
{
printf("%d -> ",(k+1));flag[k] = 1;
}
for (i = 0; i < n; i++)
{
if (a[i][k] == 1)indeg[k]--;
}
}
count++;
}
printf("\n");
return 0;
}
No comments:
Post a Comment