伪代码

void BFS(int S){queue<int> q;q.push(s);while(!q.empty()){取出队首元素top;访问队首元素top;将队首元素出队;将top的下一层结点中未曾入队的结点全部入队,并设置为已入队;}
}

说明

1. 定义队列q,并将起点s入队

2. 写一个while循环,循环条件是队列q非空

3. 在while循环中,先取出队首元素top,然后访问它(访问可以是任何事情,例如将其输出)。访问完后将其出队。

4. 将top的下一层结点中所有未曾入队的结点入队,并标记它们的层号为now的层号加1,同时设置这些入队的结点已入过队。

5. 返回2继续循环

BFS体现在哪

1. 采用的是队列,具有先进先出的特点

2. 当队首元素被访问、出队后,立即入队的是它的下一层元素

出处:胡凡 曾磊《算法笔记》

广度优先搜索(BFS)模板相关推荐

  1. 广度优先搜索BFS——模板(附四维拓展:SDUT 3929魔戒)

    广度优先搜索使用队列(queue)来实现,整个过程也可以看做一个倒立的树形: 把根节点放到队列的末尾.每次从队列的头部取出一个元素,查看这个元素所有的下一级元素,把它们放到队列的末尾.并把这个元素记为 ...

  2. 广度优先搜索(BFS)——抓住那头牛(POJ 4001)

    本文将以(POJ 4001)抓住那头牛 为例,讲解经典算法广度优先搜索(BFS)的STL写法 在实际写算法中,怎么能不使用更快.更方便.更准确.更高效的C++ STL模板呢 相信很多人都了解过广度优先 ...

  3. 广度优先搜索BFS进阶(一):多源BFS、优先队列BFS、双端队列BFS

    一.多源BFS 在上一篇博客:广度优先搜索BFS基础中,我们接触到的BFS均是单起点(单源)的,但是对于某一些问题,其有多个起点,此类问题我们称为多源BFS问题.先思考下面一道例题: 1.腐烂的橘子 ...

  4. 一文搞定深度优先搜索(DFS)与广度优先搜索(BFS)【含完整源码】

    写在前面:博主是一位普普通通的19届双非软工在读生,平时最大的爱好就是听听歌,逛逛B站.博主很喜欢的一句话花开堪折直须折,莫待无花空折枝:博主的理解是头一次为人,就应该做自己想做的事,做自己不后悔的事 ...

  5. 【蓝桥杯】历届试题 青蛙跳杯子(广度优先搜索bfs)(C++)

    [蓝桥杯]历届试题 青蛙跳杯子 问题描述 思路分析 代码实现 问题描述 题目链接:青蛙跳杯子 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 X星球的流行宠物是青蛙,一般有两种颜色: ...

  6. 算法简介:层层递进----广度优先搜索(BFS)

    算法简介:层层递进----广度优先搜索(BFS) 算法简介 算法简介 BFS算法思想: 首先以一个未被访问过的顶点作为起始顶点,访问其所有相邻的顶点,然后对每个相邻的顶点,再访问它们相邻的未被访问过的 ...

  7. 算法复习|广度优先搜索BFS

    广度优先搜索BFS 文章目录 广度优先搜索BFS HDU-1253 胜利大逃亡 HDU-1241 Oil Deposits 算法思想 从初始状态S开始,利用一定的规则,生成所有下一层的状态,依次入队 ...

  8. LeetCode 1306. 跳跃游戏 III(广度优先搜索BFS)

    1. 题目 这里有一个非负整数数组 arr,你最开始位于该数组的起始下标 start 处. 当你位于下标 i 处时,你可以跳到 i + arr[i] 或者 i - arr[i]. 请你判断自己是否能够 ...

  9. matlab bfs函数,matlab练习程序(广度优先搜索BFS、深度优先搜索DFS)

    如此经典的算法竟一直没有单独的实现过,真是遗憾啊. 广度优先搜索在过去实现的二值图像连通区域标记和prim最小生成树算法时已经无意识的用到了,深度优先搜索倒是没用过. 这次单独的将两个算法实现出来,因 ...

最新文章

  1. jmeter实现多并发
  2. require(os)
  3. 利用nodeJs anywhere搭建本地服务器环境
  4. 给solr配置中文分词器
  5. 乐视TV做电视 “自杀”还是“猎杀”
  6. 三维点云数据处理软件供技术原理说明_海量点云数据处理理论与技术
  7. 年发5篇Science,现入选中国榜“35岁以下科技创新35人”!
  8. 动态修改网页title
  9. 超详细,Wireshark 3.6.3安装教程(Windows系统)
  10. Leetcode每日一题:125.valid-palindrome(验证回文串)
  11. c++界面设计皮肤工具
  12. 测试人如何开展第一份工作?
  13. ASP.NET——C#文件夹创建与文件存在判断
  14. 【跃迁之路】【523天】程序员高效学习方法论探索系列(实验阶段280-2018.07.13)...
  15. 牛腩新闻发布系统--总结
  16. user-agent概括
  17. 下载谷歌离线地图瓦片图
  18. 人脸识别python face_recognize_python人脸识别库-face_recognition详解
  19. 多点温度检测上位机显示_多点温度检测系统设计(论文)
  20. 新浪微博与微信公众号开发总结

热门文章

  1. 微信小程序框架封装登录,网络请求等公共模块及调用示例
  2. 不用任何第三方,写一个RTMP直播推流器
  3. 桑叶黑芝麻糊,从头到脚通补
  4. PHP 读写数据库出现中文乱码问题
  5. 在后台代码中引入XAML的方法
  6. git在不同操作系统下自动替换换行符
  7. UNITY3D拓展编辑器 - 目录
  8. python 的文件读写方法:read readline readlines wirte   writelines
  9. [Python] 中文路径和中文文本文件乱码问题
  10. 杭电 hdu 2096