#-*- 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实现二叉树前序遍历
最新推荐文章于 2023-08-25 17:34:52 发布