C Program to implement Warshall’s Algorithm

Data structures using C, Here we solve the Warshall’s algorithm using C Programming Language. Warshall’s algorithm enables to compute the transitive closure of the adjacency matrix of any digraph.

/***********************************************************
* You can use all the programs on www.c-program-example.com
* for personal and learning purposes. For permissions to use the
* programs for commercial purposes,
* contact [email protected]
* To find more C programs, do visit www.c-program-example.com
* and browse!
*
* Happy Coding
***********************************************************/

#include<stdio.h>
#include<conio.h>
#include<math.h>
int max(int,int);
void warshal(int p,int n)
{
int i,j,k;
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
p[i][j]=max(p[i][j],p[i][k]&&p[k][j]);
}
int max(int a,int b)
{ ;
if(a>b)
return(a);
else
return(b);
}
void main()
{
int p={0},n,e,u,v,i,j;
clrscr();
printf("n Enter the number of vertices:");
scanf("%d",&n);
printf("n Enter the number of edges:");
scanf("%d",&e);
for(i=1;i<=e;i++)
{
printf("n Enter the end vertices of edge %d:",i);
scanf("%d%d",&u,&v);
p[u][v]=1;
}
printf("n Matrix of input data: n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%dt",p[i][j]);
printf("n");
}
warshal(p,n);
printf("n Transitive closure: n");
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%dt",p[i][j]);
printf("n");
}
getch();
}
Read more Similar C Programs
Data Structures

Learn C Programming

You can easily select the code by double clicking on the code area above.