BFS算法框架

这里给出BFS基本算法框架,核心就是借助队列这种数据结构,每次遍历将一个节点的所有邻居节点加入到队列,然后按照队列 FIFO 的特性,实现BFS算法。

python 复制代码
# BFS 算法框架
#  计算从起点 start 到终点 target 的最近距离
def bfs(start, traget):
    step = 0
    # 核心数据结构
    queue = []
    # 避免走回头路
    visited = []
    # 将起点加入队列中
    queue.append(start)
    visited[start] = True

    while queue:
        sz = len(queue)
        for i in range(sz):
            cur = queue.pop()
            # 划重点:这⾥判断是否到达终点
            if cur == traget:
                return step

            for neighbor in cur.adj():
                if not visited[neighbor]:
                    queue.append(neighbor)
                    visited[neighbor] = True

        step += 1
    
    return step
相关推荐
仟濹14 小时前
【算法打卡day7(2026-02-12 周四)算法:BFS and BFS】 3_卡码网107_寻找存在的路线_并查集
数据结构·算法·图论·宽度优先
llz_1121 天前
蓝桥杯备赛-搜索(DFS/BFS)
c++·算法·蓝桥杯·深度优先·宽度优先
仟濹2 天前
【算法打卡day7(2026-02-12 周四)算法:BFS and BFS】10__卡码网110_字符串迁移, 11_卡码网105_有向图的完全连通
算法·深度优先·dfs·bfs·宽度优先
仟濹3 天前
【算法打卡day6 | 2026-02-11 周三 | 算法: BFS and BFS】| 8_卡码网104_建造最大岛屿 | 9_卡码网106_海岸线计算
算法·深度优先·广度优先·宽度优先
yong99903 天前
基于BFS的25×25迷宫最短路径MATLAB实现
算法·matlab·宽度优先
仟濹4 天前
【算法打卡day5 | 2026-02-10 周二 | 算法: BFS and BFS】7_卡码网103_高山流水
算法·dfs·bfs·宽度优先
xiaobaibai1534 天前
从‘不敢用’到‘离不开’:军工单位以私有化AI口播系统替代SaaS,实现素材不出内网、语音克隆限权调用
人工智能·线性回归·宽度优先
卷卷的小趴菜学编程5 天前
算法篇----BFS系列
算法·bfs·宽度优先·拓扑排序·多源bfs·最短路径问题·队列应用
仟濹5 天前
【算法打卡day4 | 2026-02-09 周一 | 算法: BFS and BFS】5_卡码网101_孤岛的总面积 | 6_卡码网102_沉没孤岛
算法·深度优先·dfs·bfs·宽度优先
仟濹6 天前
【算法打卡day3 | 2026-02-08 周日 | 算法: BFS】3_卡码网99_计数孤岛_BFS | 4_卡码网100_最大岛屿的面积DFS
算法·深度优先·宽度优先