深度优先和广度优先算法

深度优先过程

def depth_tree(tree_node):

  if tree_node is not None:

    print(tree_node._data)

    if tree_node._left is not None:

      return depth_tree(tree_node._left)

    if tree_node._right is not None:

      return depth_tree(tree_node._right)

广度优先过程

def level_queue(root):

  """

  利用队列实现树的广度优先遍历

"""

  if root is None:

    return

  my_queue = []

    node = root

  my_queue.append(node)

  while my_queue:

    node = my_queue.pop(0)

    print(node.element)

    if node.lchild is not None:

      my_queue.append(node.lchild)

    if node.rchild is not None:

      my_queue.append(node.rchild)

 

posted @ 2018-08-06 19:03  python成长中  阅读(288)  评论(0编辑  收藏  举报