栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

广度优先搜索(BFS)(基于Python3)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

广度优先搜索(BFS)(基于Python3)

 

 

#定义一个图的结构
graph={
    'A':['B','C'],
    'B':['A','C','D'],
    'C':['A','B','D','E'],
    'D':['B','C','E','F'],
    'E':['C','D'],
    'F':['D']
}

 

from collections import deque

def BFS(graph, s):             # graph是图,s代表开始结点
    search_queue = deque()     # 双端队列
    search_queue.append(s)     # 初始结点入队
    v = set()                  # 标记数组已被访问 集合的非重复性
    v.add(s)                   # 标记初始结点
    while len(search_queue) > 0 :         # 队列非空
        vertex = search_queue.popleft()   # 队首元素出队
        nodes = graph[vertex]             # 队首元素连接的结点列表
        for w in nodes:
            if w not in v:
                search_queue.append(w)     # 未被访问的结点入队
                v.add(w)            # 标记已访问

        print(vertex, end=' ')      # 输出访问结点,即访问结点序列

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/309027.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号