c++深搜与宽搜的解题思路

c++深搜与宽搜的解题思路

写在开头:本文章提供深搜与宽搜的解题思路,无具体题目对应的代码,如想了解,请到个人主页查找,感谢观看。


 

深度优先搜索(DFS):

递归,即函数调用自身,以逐步减小问题 的规模。但在一些问题中,并不是所有的 递归路径都是有效的。 如图所示迷宫,很可能会进入橙色所标识 的“死胡同”,只能回到之前的路径,直到 找到绿色的解为止。

这种方法被称为回溯法。 回溯法往往会尝试一条尽可能深而完整的搜索路线,直至完全无 法继续递归时才回溯,因而需要用深度优先搜索(DFS) 实现。


 

所以学会深度优先搜索前一定要深刻理解递归,先来看一段代码:

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 void dfs(int x){
 4     if(x==0) 
 5         return;
 6     cout<<x<<endl;
 7     dfs(x-1);
 8     cout<<"*"<<x<<endl;
 9 }
10 int main(){
11     dfs(5);
12     return 0;
13 } 
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » c++深搜与宽搜的解题思路