什么是深度优先搜索?
深度优先搜索(DFS)是一种用于遍历或搜索树或图的算法。这个算法会尽可能深地搜索图的分支。当节点v的所在边都已被探寻过,搜索将回溯到发现节点v的那条边的起始节点。
算法思想
DFS 的核心是栈(可以是显式的栈,也可以是函数调用栈)。
- 从起始节点开始,访问它。
- 将其一个未被访问的邻居节点压入栈中,并访问它。
- 重复步骤 2,直到当前路径没有未被访问的邻居。
- 如果当前节点没有未访问的邻居,就从栈中弹出一个节点,回溯。
- 重复步骤 2-4,直到栈为空。
7/9/24About 1 min