写出以深度优先的搜索法的DFS程序过程,不用递归方法,而是使用一个栈来实现

2025-03-18 14:11:10
推荐回答(1个)
回答1:

代码给出比较麻烦.给个思想吧.
需要一个数组记录每个节点是否被访问过.设为tag[]吧
需要一个栈保存避免递归, 设为stack[]
1.节点i入栈stack[]
2.置tag[i]为1表示i被访问过了.
3.while(栈非空)
{
if(stack顶的元素还有没有被访问的节点j)
访问节点j, tag[j]=1, 节点j入栈;
else
顶部节点出栈;
}