dfs

很明显为了未来的长远发展,写博客是必须的,我只是希望能够CSS权限给我。

让我们来讲一讲DFS。全名为深度优先搜索(depth-first-search)

1,从名字上来说,是注重深度的,已经能展示它的特点了,在一次搜索中注重的是这次搜索的深度。

2,我先来抽象描述一下,简单说就是对每一个可能的路径深入到不能深入为止,并且每个节点只可访问一次。

3,所以这么抽象的东西嘛,肯定要来一个简单的实例来帮助理解的。

如图,我们要找一条经过三个节点的路径

 

 

3.1从v1开始,判断只经过了1个节点,往下搜索。

3.2从v1的相邻元素v2开始,判断只经过了2个节点,往下搜。

 1 一个深搜模板
 2 int search(int t)
 3 {
 4     if(满足输出条件)
 5     {
 6         输出解;
 7     }
 8     else
 9     {
10         for(int i=1;i<=尝试方法数;i++)
11             if(满足进一步搜索条件)
12             {
13                 为进一步搜索所需要的状态打上标记;
14                 search(t+1);
15                 恢复到打标记前的状态;//也就是说的{回溯一步}
16             }
17     }
18 }
posted @ 2019-11-03 20:09  北月真好  阅读(213)  评论(0编辑  收藏  举报