Bfs and Dfs
Bfs and Dfs
h>
#include <stdlib.h>
void bfs(int v)
for(i=1;i<=n;i++)
q[++r]=i;
if(f<=r)
visited[q[f]]=1;
bfs(q[f++]);
void dfs(int v)
int i;
reach[v]=1;
for(i=1;i<=n;i++)
printf("\n %d->%d",v,i);
count++;
dfs(i);
void main()
{
int v, choice;
for(i=1;i<=n;i++)
q[i]=0;
visited[i]=0;
for(i=1;i<=n-1;i++)
reach[i]=0;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&adjm[i][j]);
scanf("%d",&choice);
switch(choice)
scanf("%d",&v);
bfs(v);
if((v<1)||(v>n))
else
for(i=1;i<=n;i++)
if(visited[i])
printf("%d\t",i);
break;
case 2: dfs(1);
if(count==n-1)
printf("\n Graph is connected");
else
break;
case 3: exit(0);