JustPaste.it

#include<stdio.h>

int a[20][20],q[20],visited[20],n,i,j,f=0,r=-1,reach[20];

 

void dfs(int v)

{

int i;

reach[v]=1;

for(i=1;i<=n;i++)

if(a[v][i] && !reach[i])

{

printf("\n %d->%d",v,i);

dfs(i);

}

}

 

void dfsm()

{

int i,j,count=0;

dfs(1);

printf("\n");

for(i=1;i<=n;i++)

{

if(reach[i])

count++;

  }

  if(count==n)

   printf("\n Graph is connected");

  else

   printf("\n Graph is not connected");

  return;

}

 

void main()

{

int ch;

printf("\n Enter number of vertices:");

  scanf("%d",&n);

for(i=1;i<=n;i++)

{

reach[i]=0;

for(j=1;j<=n;j++)

a[i][j]=0;

}

printf("\n Enter the adjacency matrix:\n");

for(i=1;i<=n;i++)

for(j=1;j<=n;j++)

scanf("%d",&a[i][j]);

  do

{

printf("\n Menu.\n 1.DFS \n 2. Exit \n Enter your choice : ");

scanf("%d",&ch);

switch(ch)

{

 

case 1:

dfsm();

break;

}

}while(ch!=2);

}