广度优先搜索不使用队列

广度优先搜索不使用队列

广度 首先,Look (BFS) 是一种图表遍历计算,用于研究图表中广度运动中的中心。 BFS 的正常使用利用线路信息结构来跟踪即将到来的集线器。无论如何,可以想象在不使用明确线路的情况下利用其他信息结构来执行 BFS。

在没有线路的情况下实现 BFS 的一种可选方法是利用两个集群或记录:一个用于正在调查的当前级别的集线器,另一个用于要调查的下一级集线器。起初,当前级别列表包含源中心。

计算首先强调当前级别列表并转到每个集线器。对于每个经过的枢纽,其相邻的枢纽都会受到检查。如果未访问相邻的集线器,则将其标记为已访问并添加到其他级别列表中。该句柄将继续进行,直到当前级别列表中的所有集线器都经过为止。

一旦当前级别列表完全遍历完毕,计算将继续到另一个级别列表,并重新哈希前往集线器并检修下一个级别列表的方法。此准备工作将持续进行,直到不再有未访问的节点为止。

使用的方法

广度优先方法

广度优先方法

BFS 算法从源集线器开始,调查其邻居,最近又转移到另一级别的邻居。使用线路信息结构来跟踪您访问的枢纽。在每个周期中,计算都会访问一个集线器,将其标记为已完成,并对未访问的相邻集线器进行排队。此准备工作将持续进行,直到所有可到达的中心都被访问为止。

代码初始化一个向量 adj 来表示图表的传染性列表。向量的每个文件都与一个中心进行比较,每个记录的值包含相邻的中心。 BFS 遍历由 BFS 工作执行,它采用源集线器、集线器数量 N、经过集线器的向量 vis、单独的 dp 以及用于跟踪要访问的集线器的向量 v。 bfsTraversal 工作初始化已消失的集线器并删除向量,然后调用 BFS 工作来执行遍历。

算法

创建图表的传染列表表示形式。

初始化一行来存储要访问的集线器。

初始化消失集群以跟踪消失节点。

初始化删除集群以在每个集线器上存储从源集线器删除的内容。将源集线器的分隔符设置为0。

将源集线器排入队列并检查其是否已访问。

虽然管线不可净化,但请执行以下操作:

删除队列头部的集线器。对于已出队且尚未遍历的每个邻居集线器,请执行以下操作: 将相邻集​​线器排队。将相邻的枢纽标记为已访问。将邻居集线器删除更新为出队集线器删除(也是 1)。

重复步骤 6,直到该行为空。

BFS 遍历完成后,单独的集群将包含从源节点到图中所有其他中心的间隔。

(可选)您还可以在 BFS 遍历中跟踪每个集线器的父集线器,以便以最简单的方式从源集线器到所有其他集线器。

示例

#include #include #include using namespace std;void bfsTraversal(int adjacencyList[][2], int numVertices, int source) {   bool visited[numVertices + 1] = {false};   int distances[numVertices + 1] = {0};   queue vertices;   vertices.push(source);   visited[source] = true;   while (!vertices.empty()) {      int node = vertices.front();      cout 

输出

2,3,4,0

登录后复制

示例

#include #include using namespace std;void bfsTraversal(vector>& adjacencyList, int N, int source) {    vector visited(N + 1, false);    vector distances(N + 1, 0);    vector vertices;    vertices.push_back(source);    visited[source] = true;    int curr = 0;    while (curr > adjacencyList(N + 1);    adjacencyList[0] = {1, 2};    adjacencyList[1] = {2};    adjacencyList[2] = {0, 3};    adjacencyList[3] = {3};    adjacencyList[4] = {5};    adjacencyList[5] = {6, 7};    adjacencyList[6] = {};    adjacencyList[7] = {};    adjacencyList[8] = {};    int source = 5;    bfsTraversal(adjacencyList, N, source);    return 0;}

登录后复制

输出

5, 6, 7, Distances from source 5:Node 1: 0Node 2: 0Node 3: 0Node 4: 0Node 5: 0Node 6: 1Node 7: 1Node 8: 0

登录后复制

结论

本文对不使用行信息结构的广度优先查找 (BFS) 计算进行了说明。 BFS 计算通常用于从给定的源中心开始以逐级方式导航图表。通常,一条线路用于存储要前往的枢纽。无论如何,本文研究了一种可选方法,该方法利用基本列表或集群来存储下一级的集线器。

这种选择性的使用完成了图表的广度优先研究。本文追溯了 BFS 计算的步骤,例如初始化传染性记录、维护 go-to 和分离簇以及使用圆圈来强调中心级别。它还提供了 C 代码说明,说明了不使用一行的 BFS 遍历。该代码准确地研究图表,打印 BFS 遍历排列,并计算从源集线器到所有其他节点的距离。总的来说,本文在不使用线条的情况下对 BFS 计算进行了清晰的说明和可行的用法,展示了一种以广度优先的方式导航图表的可选方法。

以上就是广度优先搜索不使用队列的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2581311.html

(0)
上一篇 2025年3月6日 13:57:07
下一篇 2025年3月6日 13:57:16

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 如何使用C++中的哈希搜索算法

    如何使用C++中的哈希搜索算法 哈希(Hash)搜索算法是一种高效的查找和存储技术,它将关键字通过哈希函数转化为一个固定长度的索引,然后利用这个索引在数据结构中进行搜索。在C++中,我们可以通过使用标准库中的哈希容器和哈希函数来实现哈希搜索…

    2025年3月6日
    200
  • 使用C++,通过每次成功搜索后将元素加倍来重复搜索一个元素

    在本文中,我们给出了一个整数数组和一个关键字。我们需要在数组中重复查找关键字,并在每次查找时将其加倍。我们需要返回在进行这个操作时数组中不存在的值。 查看一些输入场景以了解该方法在不同情况下的工作原理 让我们来看一个数组 [1,2,6,3,…

    2025年3月6日
    200
  • 荣耀AI搜索正式上线!一键总结归纳 下拉桌面即刻体验

    9月3日消息,今日荣耀官方宣布荣耀ai搜索正式上线,并宣称“答案直给,效率百倍”。用户只需要下拉桌面>输入关键词>点击顶部ai搜索按钮>查看搜索结果(滑动页面查看大纲和脑图),就可以使用该功能。 1. 即使用户提出模糊的问…

    2025年3月6日 互联网
    200
  • 在Beego中使用Solr进行搜索和查询

    beego是一个快速的go语言web框架,solr是一个基于lucene的搜索和查询服务器。将两者结合使用可以为web应用程序提供高效的搜索功能。本文将介绍在beego中使用solr进行搜索和查询的方法。 第一步:安装Solr在开始使用So…

    编程技术 2025年3月6日
    200
  • 百度高级搜索怎么用

    百度高级搜索怎么用 百度搜索引擎是目前中国最常用的搜索引擎之一,它提供了丰富的搜索功能,其中之一就是高级搜索。高级搜索可以帮助用户更精确地搜索到所需的信息,提高搜索效率。那么,百度高级搜索怎么使用呢? 第一步,打开百度搜索引擎首页。 首先,…

    互联网 2025年3月5日
    200
  • python实现搜索本地文件信息写入文件的方法

    本文实例讲述了python实现搜索本地文件信息写入文件的方法。分享给大家供大家参考,具体如下: 主要功能: 在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件,然后把搜索出来的信息(相关文件的绝对路径),存放到用户…

    2025年3月5日
    200
  • Python的爬虫包Beautiful Soup中用正则表达式来搜索

    beautiful soup使用时,一般可以通过指定对应的name和attrs去搜索,特定的名字和属性,以找到所需要的部分的html代码。 但是,有时候,会遇到,对于要处理的内容中,其name或attr的值,有多种可能,尤其是符合某一规律,…

    编程技术 2025年3月5日
    200
  • 安装ElasticSearch搜索工具并配置Python驱动的方法

    ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是第二流行的…

    2025年3月5日
    200
  • python开发之基于thread线程搜索本地文件的方法

    本文实例讲述了python开发之基于thread线程搜索本地文件的方法。分享给大家供大家参考,具体如下: 先来看看运行效果图: 利用多个线程处理搜索的问题,我们可以发现他很快…. 下面是代码部分: 立即学习“Python免费学习…

    2025年3月5日
    200
  • win10搜索已安装补丁教程

    win10系统中每次更新或者安装都会存在很多的新补丁,但是大多数用户都不知道怎么去查看搜索它们,今天就给你们带来了win10搜索已安装补丁教程,快来一起看看吧。 win10如何搜索补丁: 1、右击左下角开始键,选择“运行”。 2、在运行窗口…

    2025年3月5日 互联网
    200

发表回复

登录后才能评论