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 }



