BFS与DFS总结
来源:互联网 发布:linux wput 编辑:程序博客网 时间:2024/05/16 07:29
最近一直在看DFS和BFS,感觉要晕的GJ.
DFS思想: 一直往深处走,直到找到解或者走不下去为止
DFS框架:
DFS(dep,…) //dep代表目前DFS的深度
{
if (找到解||走不下去了)
{
…
return;
}
枚举下一种情况,DFS(dep+1,…)
}
BFS思想:
1.从初始状态S开始,利用规则,生成下一层的状态。
2.顺序检查下一层的所有状态,看是否出现目标状态G。
否则就对该层所有状态节点,分别利用规则。生成再下一层的所有状 态节点。
3.继续按上面思想生成再下一层的所有状态节点,这样一层一层往下展开。直到出现目标状态为止。
按层次的顺序来遍历搜索树
BFS框架
通常用队列(先进先出,FIFO)实现
初始化队列Q.
Q={起点s}; 标记s为己访问;
while (Q非空) {
取Q队首元素u; u出队;
if (u == 目标状态) {…}
所有与u相邻且未被访问的点进入队列;
标记u为已访问;
}
DFS:使用栈保存未被检测的结点,结点按照深度优先的次序被访问并依次被压入栈中,并以相反的次序出栈进行新的检测。
类似于树的先根遍历
深搜例子:走迷宫,你没有办法用分身术来站在每个走过的位置。不撞南山不回头。
BFS:使用队列保存未被检测的结点。结点按照宽度优先的次序被访问和进、出队列。
类似于树的按层次遍历的过程
广搜例子:你的眼镜掉在地上以后,你趴在地板上找。你总是先摸最接近你的地方,如果没有,再摸远一点的地方……
0 0
- BFS与DFS总结
- DFS与BFS的总结
- DFS与BFS的总结
- DFS与BFS的总结
- DFS与BFS搜图模板总结
- DFS,BFS算法总结
- 总结之bfs,dfs
- DFS BFS 搜索总结
- BFS 与 DFS
- bfs与dfs
- DFS与BFS
- DFS与BFS
- dfs与bfs实现
- bfs与dfs
- 【图】BFS与DFS
- bfs与dfs
- DFS与BFS
- dfs与bfs
- 2014-7-20
- codeforces356A Knight Tournament
- 2013成都邀请赛J题||HDU4725 The Shortest Path in Nya Graph(spfa+slf优化最短路)
- STL_map——map::size
- linux下android连接真机测试
- BFS与DFS总结
- Linux多命令协作:管道及重定向
- URAL 1873 GOV Chronicles = =这题是阅读理解?
- c++构造函数char型指针要重新申请存储空间
- 堆排序
- 让fckeditor编辑器与IE10兼容的方法 DOMDocument.selectSingleNode不支持
- URAL 1874 Football Goal 均值不等式&三分
- ci框架连接数据库
- AGG 文档翻译 - 基础渲染器