DFS、BFS和Backtracking模板
2016-11-01 11:33
330 查看
搜索问题的解法
DFS(深度优先搜索)BFS(广度优先搜索)
backtracking(回溯)
DFS模板
void dfs(...) { // 结束递归的条件 if (...) { ..... // 把“当前结果” 加入 “结果集容器” 中 return; } // 继续递归,里面可能有回溯,也可能没有 if (...) { ... // 在容器中保存当前数据 dfs() ... // 在容器中删除上面保存的数据(注:这种情况下就称为回溯,很明显它是dfs的一个步骤) } }
难点
寻找dfs结束条件继续dfs的条件
题目
78. Subsets93. Restore IP Addresses
BFS模板
模板1
void bfs(...) { queue q; q.push(startRoot); while (!q.empty()) { // 按照节点处理 curNode = q.front(); q.pop(); if (...) { // 处理curNode,并把curNode的相邻Nodes加入队列 } } }
模板2
void bfs(...) { queue q; q.push(startRoot); while (!q.empty()) { // 按照层次处理 size = q.size(); for (i = 0; i < size; i++) { curNode = q.front(); q.pop(); if (... ) { // 处理curNode,并把curNode的相邻Nodes加入队列 } } } }
题目
199. Binary Tree Right Side View参考
Restore IP Addresses相关文章推荐
- Rescue 3解法:(1.DFS 2. BFS 3.BFS+优先队列模板)
- DFS和BFS模板
- BFS和DFS模板
- STL + c++ + 模板 + 重要思维 + 基础算法+ 经典算法 + 经典实例 + 编程总结+ 心得+ 入门必会 + 知识点汇总。+string +dfs +bfs等重要算法
- Rescue 3解法:(1.DFS 2. BFS 3.BFS+优先队列模板)
- BFS DFS 模板
- DFS和BFS的思路模板伪代码
- 【算法模板之DFS和BFS】
- 图的遍历(bfs+dfs)模板
- 模板:HDU 1242: Rescue: (BFS DFS)
- poj-3083-烦人复杂搜索+bfs,dfs模板
- Rescue 3解法:(1.DFS 2. BFS 3.BFS+优先队列模板)
- BFS+DFS 模板
- dfs bfs模板
- BFS() DFS() 模板
- Rescue 3解法:(1.DFS 2. BFS 3.BFS+优先队列模板)
- #HDU2255#奔小康赚大钱(KM模板题)(两种方法实现:Dfs模板和Bfs模板)
- Rescue 3解法:(1.DFS 2. BFS 3.BFS+优先队列模板)
- DFS&&BFS模板
- BFS/DFS 模板 代码