非递归算法为栈!
使用堆栈后,对visit函数的访问将从右向左进行
voidDFS(agrapha,int k ) ) initstack ) s; //初始化堆栈int i的for(I=0; i A.vexnum; I ) { vis[i]=flase; }push(s,k ); while (! isempty(s ) ) k=pop ) s; visit(k ); vis[k]=1; for(I=firstneighbour(a,k ) ); i=0; I=nextneighbour(a,k,I ) ) if (! vis[I]}{push(s,I ); //放入堆栈但不访问vis[i]=true; } } }}