BFS

Posted tyxmax

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BFS相关的知识,希望对你有一定的参考价值。

BFS
一般用来求最少多少步操作,因为离根结点最近的结点会被最先访问,需要利用队列来实现,将当前搜索到的状态的每一种
子状态压如队列,记录之后,检查队列是否为空,如果不为空,就将队首元素弹出,并且以这个状态为根结点进行BFS直到
整个队列为空为止
q.push(head);
void BFS(!q.empty())
temp=q.front();
q.pop();
if(temp为目标状态) 输出;
if(temp不合法) continue;//进入下一个状态
if(temp合法) q.push(temp+Δ);//表示所有temp在搜索树中所有的子节点都压入队列

效率较高,适用于找一条最快到达目标状态的路径。

以上是关于BFS的主要内容,如果未能解决你的问题,请参考以下文章

BFS实际应用题[思维扩展]——双向BFS与A*启发式搜索

BFS实际应用题[思维扩展]——双向BFS与A*启发式搜索

[bfs最短路] aw1100. 抓住那头牛(bfs最短路+模板题)

(转)BFS与DFS

[bfs最短路] aw1076. 迷宫问题(bfs最短路+模板题)

POJ1475 Pushing Boxes(BFS套BFS)