图的深度优先遍历可以多次访问节点吗?

计算科学 算法 图论
2021-12-01 08:43:41

有没有一种方法可以让深度优先遍历使用这里所示的通用算法多次将一个节点放入堆栈

另外,所有节点是否必须至少进入堆栈一次?有没有节点没有入栈的情况?

1个回答

深度优先搜索只会将一个节点放入堆栈一次。执行 DFS 的常用方法包括将顶点标记为已标记,同时将其推入堆栈,而不是再次推入已标记的顶点。

当且仅当节点不是涉及 DFS 起始顶点的连接组件的一部分时,该节点才不会进入堆栈。这仅对由不相交的连接组件组成的图很重要,而不是连接图。