深度优先搜索(DFS)

  深度优先搜索是一种利用计算机资源进行暴力枚举的办法,通常用于求一个问题的所有解。

  深度优先搜索的核心只有七个字:“不撞南墙不回头”。也就是说,深度优先搜索会从当前状态找到一条可行的路径,然后沿这条路走到底,直到不能再走为止,就返回当前状态。

 

  深度优先搜索的代码模板如下:

 1 void dfs(int step) {
 2     if (step == n+1) {
 3         输出解;
 4     }
 5     else {
 6         while (遍历该点的儿子结点) {
 7             if (这个儿子结点未搜素过) {
 8                 used[该儿子结点] = true;
 9                 dfs(step+1);
10                 used[该儿子结点] = false;
11             }
12         }
13     }
14 }
View Code

 

你可能感兴趣的:(深度优先搜索(DFS))