首页 > 其他 > 详细

BFS

时间:2019-12-08 16:10:51      阅读:69      评论:0      收藏:0      [点我收藏+]

1,为什么bfs要用到队列。

2,对于你可以遍历到的所有状态,先把他们加到一个队列中,然后再去遍历他们。

3,简单说就是先mark,然后在遍历。

4,代码框架

void bfs()
{
    push(..)//把起始状态入队列
    while(!empty()){//当队列不为空时候
    x=pop();
    for(...)
{}//遍历此状态可到达的状态
push(...)//后续状态入队
    
    
    }


}

 5,bfs有一个有用的特点,即逐层扩展

若任意两个状态间转移的代价都相同,

那么bfs第一次访问到目标状态时时从起始状态到目标状态的最小代价的

(因为没有切身体会,所以感受不是很深)

例如在网格图中求单源最短路,只需要从源点开始逐层扩展。。

啥啥的。。以后再说把

6,与其说染色,不如说特殊点的记忆化。

7,呵呵,要不思考放晚上把。。

BFS

原文:https://www.cnblogs.com/beiyueya/p/12005607.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!