binarytree二叉树节点BFS广度优先搜索遍历,基于队列,非递归,python

Posted zhangphil

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了binarytree二叉树节点BFS广度优先搜索遍历,基于队列,非递归,python相关的知识,希望对你有一定的参考价值。

import random

from binarytree import build


def app():
    data = []
    for i in range(9):
        data.append(i)
    random.shuffle(data)

    root = build(data)
    root.pprint(index=True, delimiter=',')
    print('binarytree标准遍历', root.values)

    print('-----')
    nodes = my_travel(root)
    print('广度遍历', nodes)


# 广度遍历,从左至右,自顶向下
def my_travel(root):
    nodes = []
    Q = [root[0]]
    while True:
        n = Q[0]
        nodes.append(n.value)
        del (Q[0])

        if n.left != None:
            Q.append(n.left)
        if n.right != None:
            Q.append(n.right)

        if len(Q) == 0:
            break

    return nodes


if __name__ == '__main__':
    app()

运行输出:

               _____0,3_____
              /             \\
       _____1,7_           _2,1_
      /         \\         /     \\
   _3,0_        4,8     5,2     6,5
  /     \\
7,4     8,6

binarytree标准遍历 [3, 7, 1, 0, 8, 2, 5, 4, 6]
-----
广度遍历 [3, 7, 1, 0, 8, 2, 5, 4, 6]

以上是关于binarytree二叉树节点BFS广度优先搜索遍历,基于队列,非递归,python的主要内容,如果未能解决你的问题,请参考以下文章

二叉搜索树BST广度优先搜索遍历BFS计算树高度,非递归,binarytree,python

BFS(广度优先搜索)

算法二叉树相关算法

binarytree二叉树节点DFS深度优先搜索遍历,递归,python

binarytree二叉树节点DFS深度优先搜索遍历,递归,python

DFS-深度优先搜索与BFS-广度优先搜索