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
相关推荐
Pniubi8 天前
力扣 102二叉树的层序遍历(广度优先搜索)
leetcode·宽度优先
Mortalbreeze10 天前
0 - 1 BFS 算法详解:从基本原理到经典题目建模
数据结构·c++·算法·图论·宽度优先
Tisfy10 天前
LeetCode 3619.总价值可以被 K 整除的岛屿数目:广度优先搜索BFS
算法·leetcode·bfs·宽度优先
Interview Aid11216 天前
Snowflake OA 面试真题:前缀和、BFS 与动态规划
面试·动态规划·宽度优先
开开心心就好23 天前
文件关联被破坏怎么修?免费工具一键修复
java·服务器·开发语言·pdf·ocr·启发式算法·宽度优先
程序员清风23 天前
最短路径算法:BFS、Dijkstra 与 Floyd
java·算法·宽度优先
木井巳24 天前
【BFS 解决拓扑排序】火星词典
java·算法·leetcode·广度优先·宽度优先·图搜索算法
AI情绪识别开源25 天前
检信 ALLEMOTION AI驱动振动感知健康分析平台多维度技术参数
人工智能·宽度优先·推荐算法
木井巳1 个月前
【BFS 解决拓扑排序】课程表
java·算法·leetcode·广度优先·宽度优先·推荐算法·图搜索算法
2601_967933771 个月前
DeepSeek在开源大模型赛道上的技术
启发式算法·宽度优先·最小二乘法·图搜索算法