Pages

Sunday, December 20, 2015

Implementation of Graph Traversal BFS and DFS

#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