python 图的广度优先搜索BFS

本文介绍了如何使用队列实现图的广度优先搜索算法,并通过手绘示例和代码实例展示了从节点'e'开始的遍历过程。重点讲解了算法步骤和结果可视化,适合初学者理解图算法基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

图的广度优先搜索,采用队列方式
手绘有向图
在这里插入图片描述

程序

import queue
from queue import Queue
graph = {
    "a": ["b", "c"],
    "b": ["a", "d"],
    "c": ["a", "d"],
    # "d": [ "e"],
    "d": ["c", "e"],  # add loop
    "e": ["d"]
}

##
vis= []
q = queue.Queue()
def bfs(v):
    q.put(v)  # 进队列
    vis.append(v) # 加入访问过的列表
    while not q.empty():
        u = q.get()
        # print(u)
        for vi in graph[u]:
            if vi not in vis:
                vis.append(vi)
                q.put(vi)
    return vis


bfs("e")
vis

结果展示

['e', 'd', 'c', 'a', 'b']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nsq_ai

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值