BFS
BFS
h>
#include<conio.h>
int items[10];
void insert(int e)
if(rear==9)
printf("Queue overflow.");
else
items[++rear]=e;
int empty()
int remove1()
int x=0;
if(empty()==1)
printf("Queue underflow.");
return 0;
else
{
x=items[front++];
return x;
int adj[51][51];
int visited[51];
void createGraph()
int n,i,c,j,parent,adj_parent,initial_node;
scanf("%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
adj[i][j]=0;
for(c=1;c<=50;c++)
visited[c]=0;
do
scanf("%d",&parent);
do
{
printf("Enter adjacent node for parent node %d:",parent);
scanf("%d",&adj_parent);
adj[parent][adj_parent]=1;
adj[adj_parent][parent]=1;
fflush(stdin);
scanf("%d",&ans1);
}while(ans1==1);
scanf("%d",&ans);
}while(ans==1);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
printf(" %d",adj[i][j]);
printf("\n");
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(adj[i][j]==1)
printf(" %d",j);
scanf("%d",&initial_node);
BFS(initial_node,n);
int u,i;
u=initial_node;
visited[initial_node]=1;
printf("%d",initial_node);
insert(initial_node);
while(!empty())
u=remove1();
for(i=1;i<=n;i++)
if((adj[u][i]==1)&&(visited[i]==0))
insert(i);
visited[i]=1;
printf(" %d",i);
}
void main()
clrscr();
createGraph();
getch();