DFS的栈做法

来源:互联网 发布:软件项目经理培训 编辑:程序博客网 时间:2024/04/27 22:31
#include<iostream>//求出搜索路径#include<stack>using namespace std;#define N 9int main(){stack<int>A;bool visit[N];memset(visit,0,sizeof(visit));bool arr[N][N]={{0,0,0,0,0,1,1,0,0},{1,0,0,0,0,0,0,1,0},{1,0,0,1,0,0,0,0,0},{0,0,1,0,0,1,0,0,0},{0,0,1,1,0,0,1,0,0},{0,0,0,0,1,0,0,0,0},{0,0,0,0,0,0,0,0,0},{0,1,0,0,0,0,0,0,0},{0,0,0,0,0,0,0,0,0}};for(int i=0;i<N;++i){if(!visit[i]){visit[i]=1;A.push(i);while(!A.empty()){cout<<A.top()<<' ';int idx=A.top();A.pop();for(int j=0;j<N;++j){if(arr[idx][j]==1 && visit[j]==0){A.push(j);visit[j]=1;break;}}}}}return 0;}

0 0