0
点赞
收藏
分享

微信扫一扫

DFS(深度优先搜索)学习笔记(C语言版本)

蒸熟的土豆 2022-01-28 阅读 104

DFS(深度优先搜索):

1.概念;

官方:事实上,深度优先搜索属于图算法的一种,英文缩写为DFS即Depth First Search.其过程简要来说是对每一个可能的分支路径深入到不能再深入为止,而且每个节点只能访问一次.

个人理解:以深度为先,以一定的方向一条路走到尽头为止后原路返回

再继续以定的方向一条路走到尽头为止后原路返回…………

的方式去遍历每一条路。

2.图解:

什么叫以一定的方向呢?可以规定遍历方向为:右,下,左,上。

例如6号位置,有四条路可以走,因为我们人为规定了方向,所以它得先从右开始走起。

观察起点,不难发现起点就只有一条向下的路可以走,到达1号点后,

有两条路可走,由于规定了方向,所以向往右到达2号点,

以此类推到达4号点后,向右走不通,所以向下走到8号点,8号点的右也不通,所以走到12号点。

接着继续走到16,15,14,13,9,10,11。每到达一个点后都需要标记此点是已经走过的。

这样就遍历完了一条路。

接着开始原路返回

从11->10,因为刚刚10是从右到11,10的下不通,左边9号由于被标记了,所以只能往上走到6号,注意从10->6之后需要把10号标记取消!

之后6->7,由于7的右边8已被标记,所以向下到达11.

这样就遍历完第二条路了。

这时候原来返回到7…………

看到这里,对于DFS应该有了一定的认知了吧,现在开始实操代码吧

 

3.代码实现:以上面的图为例子。

举报

相关推荐

0 条评论