#-*- coding: utf-8
"""
date:5-14
function: 用非递归的方式前序遍历二叉树(中左右)
用对了(先入先出的一种线性表数据结构)来实现前序遍历
"""
class Node(object):
def __init__(self, root='', left='', right=''):
"""构造函数"""
self.root = root
self.left = left
self.right = right
def binary_tree():
"""
构建一颗二叉树
"""
root_node = Node('A')
node_b = Node('B')
root_node.left = node_b
node_c = Node('C')
root_node.right = node_c
node_d = Node('D')
node_b.left = node_d
node_e = Node('E')
node_c.right = node_e
return root_node
def prev_function(node_root):
"""
前序遍历二叉树
A->B->C->D->E
"""
queue = []
res = []
# 先将根节点插入中
if node_root.root == '':
print ("空树")
return res
queue.append(node_root)
while len(queue) > 0:
#取列首
node = queue.pop(0)
res.append(node.root)
if node.left != '':
queue.append(node.left)
if node.right != '':
queue.append(node.right)
return res
if __name__ == "__main__":
node_root = binary_tree()
res = prev_function(node_root)
print (res)
【二叉树前序遍历】Python实现二叉树前序遍历
最新推荐文章于 2024-10-21 08:57:50 发布
858

被折叠的 条评论
为什么被折叠?



