DFS的栈做法
Posted 幻觉czw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DFS的栈做法相关的知识,希望对你有一定的参考价值。
#include<iostream>//求出搜索路径
#include<stack>
using namespace std;
#define N 9
int 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;
以上是关于DFS的栈做法的主要内容,如果未能解决你的问题,请参考以下文章