Experiment-9 AIM:-write A Program For BFS (Breadath First Search) and DFS (Depth First Search)
Experiment-9 AIM:-write A Program For BFS (Breadath First Search) and DFS (Depth First Search)
#include<conio.h>
int q[20],a[20][20],vis[20],stack[20];
int top=-1,front=-1,rear=-1;
int delet(void);
int pop();
void main()
int n,i,s,ch,j;
int c;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{
printf(" %d",a[i][j]);
printf("\n");
do
for(i=1;i<=n;i++)
vis[i]=0;
printf("\nMENU");
printf("\n1.D.F.S");
printf("\n2.B.F.S");
scanf("%d",&ch);
scanf("%d",&s);
switch(ch)
case 1:dfs(s,n);
break;
case 2:
bfs(s,n);
break;
scanf("%d",&c);
}while((c!=0));
{
int p,i;
add(s);
vis[s]=1;
p=delet();
if(p!=0)
printf(" %d",p);
while(p!=0)
for(i=1;i<=n;i++)
if((a[p][i]!=0)&&(vis[i]==0))
add(i);
vis[i]=1;
p=delet();
if(p!=0)
printf(" %d ",p);
for(i=1;i<=n;i++)
if(vis[i]==0)
bfs(i,n);
if(rear==19)
printf("QUEUE FULL");
else
if(rear==-1)
q[++rear]=item;
front++;
else
q[++rear]=item;
int delet()
int k;
if((front>rear)||(front==-1))
return(0);
else
k=q[f++];
return(k);
int i,k;
push(s);
vis[s]=1;
k=pop();
if(k!=0)
printf(" %d ",k);
while(k!=0)
for(i=1;i<=n;i++)
if((a[k][i]!=0)&&(vis[i]==0))
push(i);
vis[i]=1;
k=pop();
if(k!=0)
printf(" %d ",k);
for(i=1;i<=n;i++)
if(vis[i]==0)
dfs(i,n);
if(top==19)
else
stack[++t]=item;
int pop()
int k;
if(top==-1)
return(0);
else
k=stack[top--];
return(k);
}
}
18341A05E0