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
相关推荐
WHD3062 天前
苏州误删除 格式化 服务器文件 恢复
随机森林·支持向量机·深度优先·爬山算法·宽度优先·推荐算法·最小二乘法
WHD3062 天前
苏州戴尔PowerEdge服务器 不开机 黄灯维修
决策树·散列表·广度优先·宽度优先
踩坑记录7 天前
leetcode hot100 104. 二叉树的最大深度 easy 递归dfs 层序遍历bfs
leetcode·深度优先·宽度优先
踩坑记录7 天前
leetcode hot100 226. 翻转二叉树 easy 递归 层序遍历 BFS
算法·leetcode·宽度优先
踩坑记录7 天前
leetcode hot100 easy 101. 对称二叉树 递归 层序遍历 bfs
算法·leetcode·宽度优先
晚风_END8 天前
postgresql数据库|pgbouncer连接池压测和直连postgresql数据库压测对比
数据库·postgresql·oracle·性能优化·宽度优先
Yupureki8 天前
《算法竞赛从入门到国奖》算法基础:搜索-多源BFS
数据结构·c++·算法·visual studio·宽度优先
4311媒体网9 天前
U++集成开发环境:提升编码效率
宽度优先·推荐算法
Yupureki10 天前
《算法竞赛从入门到国奖》算法基础:搜索-BFS初识
c语言·数据结构·c++·算法·visual studio·宽度优先
闻缺陷则喜何志丹11 天前
【BFS 动态规划】P12382 [蓝桥杯 2023 省 Python B] 树上选点|普及+
c++·蓝桥杯·动态规划·宽度优先·洛谷