BFS算法模板(python实现)

Posted Bham_fang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BFS算法模板(python实现)相关的知识,希望对你有一定的参考价值。

BFS算法整理(python实现)

广度优先算法(Breadth-First-Search),简称BFS,是一种图形搜索演算算法。

1. 算法的应用场景

2. 算法的模板

2.1 针对树的BFS模板

  • 无需分层遍历
from collections import deque

# Definition for a binary tree node.
class TreeNode:
    def __init__(self, x):
        self.val = x
        self.left = None
        self.right = None


def level_order_tree(root, result):
    if not root:
        return
    # 这里借助python的双向队列实现队列
    # 避免使用list.pop(0)出站的时间复杂度为O(n)
    queue = deque([root])

    while queue:
        node = queue.popleft()
        # do somethings
        result.append(node.val)
        if node.left:
            queue.append(node.left)
        if node.right:
            queue.append(node.right)
    return result


if __name__ == "__main__":
    tree = TreeNode(4)
    tree.left = TreeNode(9)
    tree.right = TreeNode(0)
    tree.left.left = TreeNode(5)
    tree.left.right = TreeNode(1)

    print(level_order_tree(tree, []))
    # [4, 9, 0, 5, 1]

以上是关于BFS算法模板(python实现)的主要内容,如果未能解决你的问题,请参考以下文章

BFS算法模板与练习

快速排序模板秦九昭算法模板深度优先搜索DFS广度优先搜索BFS图的遍历逆元中国剩余定理斯特林公式

应对笔试手写代码,如何准备深度优先算法 & 广度优先算法?

应对笔试手写代码,如何准备深度优先算法 & 广度优先算法?

BFS算法(——模板习题与总结)

bfs算法总结