#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
int
cost[10][10],i,j,k,n,stack[10],top,queue[10],front,rear,v,visit[10],visited[10];
void main()
{
int m,ch;
clrscr();
cout
<<"enterno of vertices : ";
cin
>> n;
cout
<<"ente no of edges : ";
cin
>> m;
cout
<<"\nEDGES : ";
for(k=1;k<=m;k++)
{
cin
>>i>>j;
cost[i][j]=1;
}
cout<<"1: BFS\n2: DFS\n0: Exit\nEnter your choice: ";
cin>>ch;
switch(ch)
{
case 1:
cout
<<"enter initial vertex : ";
cin
>>v;
cout
<<"Visitied vertices : \t";
cout
<< v;
visited[v]=1;
k=1;
while(k<n)
{
for(j=1;j<=n;j++)
if(cost[v][j]!=0
&& visited[j]!=1 && visit[j]!=1)
{
visit[j]=1;
queue[rear++]=j;
}
v=queue[front++];
cout<<v
<< " ";
k++;
visit[v]=0;
visited[v]=1;
}
break;
case 2:
cout
<<"enter initial vertex : ";
cin
>>v;
cout
<<"Visitied vertices : \t";
cout
<<v;
visited[v]=1;
k=1;
while(k<n)
{
for(j=n;j>=1;j--)
if(cost[v][j]!=0
&& visited[j]!=1 && visit[j]!=1)
{
visit[j]=1;
stack
[top]=j;
top++;
}
v=
stack [--top];
cout<<v
<< " ";
k++;
visit[v]=0;
visited[v]=1;
}
break;
case 0:
exit(0);
break;
default:
cout<<"Incorrect choice!";
}
getch();
}
No comments:
Post a Comment