Aim: Write a program to implement depth first search algorithm.
Code:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
int cost[10][10],i,j,k,n,stk[10],top,v,visit[10],visited[10];
int main(){
int m;
cout<<"Enter the number of vertices: ";
cin>>n;
cout<<"Enter the number of edges: ";
cin>>m; cout<<"\nEDGES:\n";
for(k=1;k<=m;k++){
cin>>i>>j;
cost[i][j] = 1;
}
cout<<"Enter initial vertex to traverse from:";
cin>>v;
cout<<"DFS ORDER OF VISITED VERTICES:";
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;
stk[top] = j;
top++;
}
v=stk[-top];
cout<<v<<" ";
k++;
visit[v] = 0;
visited[v] = 1;
}
getch();
return 0; }
Leave a Reply