深度优先搜索

深度优先搜索(Depth-First Search, DFS)是一种基于栈结构的搜索策略。

基本思想

从起始状态出发,沿着一条路径一直深入直到无法继续,然后回溯到上一个分叉点,选择另一条路径继续探索。

数据结构

使用栈(Stack)来存储待探索的路径:

  • 当前路径无法继续时,从栈中弹出回到上一个状态
  • 新的分支节点入栈

特点

  • 更快达到边界:适合需要快速找到解的深度较大的问题
  • 空间效率较高:只需存储当前路径上的节点
  • 不一定找到最优解:找到的第一个解不一定是最短路径

应用场景

  • 图的连通性检测
  • 拓扑排序
  • 回溯法求解问题(如八皇后、数独)

链接到