首页 > 编程语言 >【BFS】算法模板与思路

【BFS】算法模板与思路

时间:2022-09-02 12:11:09浏览次数:63  
标签:优先 队列 BFS 算法 宽度 搜索 模板

1.BFS算法的基础理论是什么?
BFS算法名叫宽度优先搜索,虽然我能理解深度优先搜索,但我却不是很能理解宽度优先搜索。

一个很关键的点在于:宽度优先搜索是一个迭代的算法,不是递归的算法。
与DFS之间的区别:
DFS是利用栈的特性进行搜索的。
而BFS是利用队列的特性进行搜索的,队列的话,不能利用系统的特性,所以使用过程中得创建一个队列。

2.BFS的代码模板
一、不需要区分目前遍历到那一层了:

while(队列非空)
{
  int len = 队列.size();
  for(len) //执行len次,将队中所有的值先pop掉
  {
    TreeNode* tmp=队头;
    pop出;
    存储tmp值;
    装新值; 
  }
   
}
就是这样一边出一边进。

3.宽度优先搜索需要对很多问题进行抽象,建模
这也造成了宽度优先搜索类的题目或者思路比较难想到。

标签:优先,队列,BFS,算法,宽度,搜索,模板
From: https://www.cnblogs.com/black-worrior-2000/p/16648742.html

相关文章

  • 35 | JAVA中的Collections(类似C++中的算法)
    CollectionsCollections是JDK提供的工具类,同样位于java.util包中。它提供了一系列静态方法,能更方便地操作各种集合。注意Collections结尾多了一个s,不是Collection!我们一......
  • Problem P01. [算法课分治] 最大二叉树
    需要注意的:scanf()的返回值是EOF,输入结束通过指针指向左右子树的二叉树构建#include<iostream>#include<bits/stdc++.h>#include<cstdio>usingnamespacestd;......
  • 最新小红书数据 小红书爬虫 小红书接口 xhs 小红书算法 小红书api
    最新版小红书APP接口,需要交流的朋友联系,少量勿扰,谢谢!只取APP公开数据,不做违法事情,如有侵犯贵公司,请联系删除!博主详情笔记详情博主笔记列表笔记评论关键词搜索等等接......
  • 1.Mybatis-XML模板
    SELECT sr.ROLE_IDASroleId, sr.ROLE_NAMEASroleName, sr.IS_ACTIVEASisActive, sr.REMARKASremark, sr.CREATE_DATETIMEAScreateDatetime, CON......
  • 共识算法 CAP BASE
    共识算法(ConsensusAlgorithm)共识算法是用来保证分布式系统一致性的方法。它能保证所有节点的数据相同并且一个节点发起的提案可以被其他节点同意。根据解决的场景是否......
  • 普里姆(prim)算法
    1.应用场景-修路问题看一个应用场景和问题:1)有胜利乡有7个村庄(A,B,C,D,E,F,G),现在需要修路把7个村庄连通2)各个村庄的距离用边线表示(权),比如A–B距离5......
  • C++之常用的算法
    C++之常用的算法1函数对象重载函数调用运算符的类,其对象称为函数对象。一元仿函数/二元仿函数(根据参数个数判定)classMyPrint{public: voidoperator()(intn......
  • 【算法】反转字符串
    前言研究算法能提高我们的编程功底,更好地编写出高效稳健的代码。今天,我们研究的是——反转字符串。//输入一个字符串,输出它的倒序字符串input:Hellooutput:olleH......
  • 见过的python算法面试题记录(持续记录···)
     以上代码的输出是[6,6,6,6](而不是[0,2,4,6])。这个的原因是Python的闭包的后期绑定导致的latebinding,这意味着在闭包中的变量是在内部函数被调用的时候被......
  • letcode算法--5.整数反转
    给你一个32位的有符号整数x,返回将x中的数字部分反转后的结果。如果反转后整数超过32位的有符号整数的范围 [−231, 231 −1],就返回0。假设环境不允许存储......