算法基础--bfs

bfs

借助一个队列将头结点放入队列,拿出队列头,循环放入与头相连接的结点。

queue<Node> mq;
while(!mq.empty())
{
    Node c=mq.front();
    if(c是要找的点)
        结束
    <!-- 循环判断是否相连 -->
    <!-- visited判重 -->
    mq.pop()
}
  1. 判重时visited要记录所有的维度。
  2. O(n),但是额外用了n个Node结点的空间
  3. 一层一层的搜索,所以第一个碰到的点一定是最短路径。
  4. 如果只要输出长度,Node里加一个step表示长度即可。但如要输出整个路径过程,则要自己用数组构造一个队列,用phead,ptail记录头尾。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值