DFS搜索是搜索中的一种,即深度优先搜索(Depth First Search),其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次。
图示:
如图,这是邻接矩阵,我们要从s走到e,且“*”不能走,求所有方案。
首先,从s出发,标记s
然后通过s只能走到下面一个点,重复几次,我们走到了第一个岔路口。
这时,我们有两个方向可以走,先向右走。
现在只能往下走,到达了e,方案数+1,返回。
现在该处理刚才的的另一种方案,向下走。
现在只有一个方向走到终点,方案数+1,返回。因为所有能走的点都标记了,结束DFS。
所以图的DFS的操作:
- 是找到一个点
- 搜索它的所有方向的点
- 如果点能走,就在他身上继续DFS(递推)
所以说DFS是一种算法,它也有很多种,如抽象的DFS,无向图的DFS等等,读者们就自己去钻研了吧。