码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 用Python实现广度优先搜索


    图是一种善于处理关系型数据的数据结构,使用它可以很轻松地表示数据之间是如何关联的

    图的实现形式有很多,最简单的方法之一就是用散列表

    背景

    图有两种经典的遍历方式:广度优先搜索和深度优先搜索。两者是相似的。

    实现

    1广度优先搜索算法需要用队列来记录后续要处理哪些顶点。

    2该队列最初只含有起步的顶点

    3处理顶点。我们将其移出队列,标为“已访问”,并记为当前顶点

    class Bfs:
        def __init__(self,from_v,json):
            # 最初的顶点
            self.from_v = from_v
            # 已访问
            self.visitList = [self.from_v]
            # 需要一个队列来记录后续需要处理哪些顶点
            self.vertexQ = queue.Queue()
            self.json = json

    核心步骤

    (1) 找出当前顶点的所有邻接点。如果有哪个是没访问过的,就把它标为“已访问”,并且将它入队。(尽管该顶点并未作为“当前顶点”被访问过。)

    (2) 如果当前顶点没有未访问的邻接点,且队列不为空,那就再从队列中移出一个顶点作为当前顶点。

    (3) 如果当前顶点没有未访问的邻接点,且队列里也没有其他顶点,那么算法完成。

    图解

    1首先A会作为顶点,A被访问

    2再去寻找A领接点B、D,依次加入队列

  • 相关阅读:
    【君正T31学习教程】002Toolchain使用说明
    【react】react-redux 使用指南
    【LeetCode】单词规律
    Linux CentOS使用Docker部署Apache Superset并实现远程分析数据
    外卖项目(SpringBoot)--- 前后端分离开发部署
    这就是艺术,优雅的二维码生成器「GitHub 热点速览」
    Python基础之reduce函数
    脑机接口003 | 马斯克称已实现与云端的虚拟自己对话,相关概念股份大涨
    Windows配置python3环境变量解决无法识别pip指令报错
    Python 图形化界面基础篇:添加复选框( Checkbutton )到 Tkinter 窗口
  • 原文地址:https://blog.csdn.net/m0_59485658/article/details/126683122
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号