bfs的理解

bfs的小理解

通常来说 bfs是和队列(优先队列)联系在一起的。

解决的问题

如果是队列的话用于求解最小步数,因为bfs的遍历方法为层次遍历,即每一层的步数都相同,因为有判重数组的存在不会重复的进行遍历

如果是优先队列的话用于求最短时间(每一层步数不一定相同)小步数优先。

 求树的直径的时候,需要求俩个最远端点的最小步数,就是求最小步数的最大步数

举个例子模拟一下

从2开始遍历的1,3,6在第一层,5,4,7在第二层,8在第三层,当每一层步数都相同时,用队列,这时候8既可以写在4下面又可以写在7下面,因为步数相同无所谓的,但如果不相同时,就需要优先队列了,8 是写在4 的下面还是写在7 的下面,取决于4和7(他们在同一层但是他们此时的步数不相同) 这两个状态此时的步数,这就是我所说的小步数优先,假如4 的步数小8就写在4 的下面

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值