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 }