深度优先搜索的代码框架(DFS)
2018-03-06 21:58
169 查看
判断从V出发是否能走到终点:
//判断从V出发是否能走到终点,如果能,要记录路径
Node path[MAX_LEN]; //MAX_LEN取节点总数即可
int depth;
bool Dfs(v) {
if(v是终点) {
path[depth] = v;
return true;
}
if(v为旧点)
return false;
将v标记为旧点; //在此之间是新点
path[depth] = v;
++depth;
对 和v相邻的每个节点U {
if(Dfs(U) == true) //说明这个相邻的点是终点
return true;
}
--depth; //说明这儿既不是终点,也没有相邻的点,肯定就是走错路了呗,应该回溯了
return false;
}
int main() {
将所有点都标记为新点;
depth = 0;
if(Dfs(起点)) {
for(int i = 0; i <= depth; i++)
cout << path[i] << endl;
}
}
//判断从V出发是否能走到终点,如果能,要记录路径
Node path[MAX_LEN]; //MAX_LEN取节点总数即可
int depth;
bool Dfs(v) {
if(v是终点) {
path[depth] = v;
return true;
}
if(v为旧点)
return false;
将v标记为旧点; //在此之间是新点
path[depth] = v;
++depth;
对 和v相邻的每个节点U {
if(Dfs(U) == true) //说明这个相邻的点是终点
return true;
}
--depth; //说明这儿既不是终点,也没有相邻的点,肯定就是走错路了呗,应该回溯了
return false;
}
int main() {
将所有点都标记为新点;
depth = 0;
if(Dfs(起点)) {
for(int i = 0; i <= depth; i++)
cout << path[i] << endl;
}
}
相关文章推荐
- DFS深度优先搜索之走迷宫
- 深度优先搜索DFS/广度优先搜索BFS的一个应用实例(华为编程大赛赛题)
- 深度优先搜索DFS
- 由SWUSTOJ 0032浅谈DFS深度优先搜索
- 算法之------深度优先搜索DFS和广度优先搜索BFS(最短路径)
- POJ1979(DFS深度优先搜索)之 Red and Black
- nyoj 部分和问题(深度优先搜索DFS)
- DFS深度优先搜索之lake counting
- 深度优先搜索 DFS
- ACM-POJ 1562 DFS 深度优先搜索
- 深度优先搜索DFS 走迷宫
- 深度优先搜索DFS
- 深度优先搜索DFS
- 深度优先搜索DFS:八皇后问题(去掉不能再一条斜线上的条件) C++
- leetcode 98. Validate Binary Search Tree DFS深度优先搜索 + 两个递归函数 + 一个错误做法
- poj1312 dfs 深度优先搜索
- Oil Deposits(深度优先搜索DFS)
- nyoj 部分和问题(深度优先搜索DFS)
- dfs 深度优先搜索
- 数据结构和算法总结(一):广度优先搜索BFS和深度优先搜索DFS