DFS
DFS
DFS
h>
#include<conio.h>
int stk[10],adj[51][51],visited[51];
void createGraph()
int ans=0,ans1=0;
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
scanf("%d",&adj_parent);
adj[parent][adj_parent]=1;
adj[adj_parent][parent]=1;
fflush(stdin);
scanf("%d",&ans1);
}while(ans1==1);
fflush(stdin);
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);
DFS(initial_node,n);
int top=-1;
if(top==9)
printf("\nOVERFLOW.");
else
stk[++top]=item;
int pop()
if(top==-1)
printf("\nSTACK UNDERFLOW.");
else
return (stk[top--]);
return 0;
{
int u,i;
top=-1;
push(initial_node);
while(top>=0)
u=pop();
if(visited[u]==0)
printf("%d ",+u);
visited[u]=1;
for(i=1;i<=n;i++)
if((adj[u][i]==1)&&(visited[i]==0))
push(u);
visited[i]=1;
printf("%d ",i);
u=i;
void main()
{
clrscr();
createGraph();
getch();