"""二叉树的构建与遍历"""class TreeNode:"""二叉树节点"""def __init__(self, data=None, left=None, right=None):self.data = dataself.left = leftself.right = rightclass TwoTree:"""二叉树"""def __init__(self, root=None):self.root = rootdef is_empty(self):if self.root is None:return Trueelse:return Falsedef pre_order(self, node):"""前序遍历:param node::return:"""if node is None:returnprint(node.data, end=' ')self.pre_order(node.left)self.pre_order(node.right)def in_order(self, node):"""中序遍历:param node::return:"""if node is None:returnself.in_order(node.left)print(node.data, end=' ')self.in_order(node.right)def post_order(self, node):"""后序遍历:param node::return:"""if node is None:returnself.post_order(node.left)self.post_order(node.right)print(node.data, end=' ')if __name__ == "__main__":# 按照后序遍历增加节点b = TreeNode('B')f = TreeNode('F')g = TreeNode('G')d = TreeNode('D', f, g)i = TreeNode('I')h = TreeNode('H')e = TreeNode('E', i, h)c = TreeNode('C', d, e)a = TreeNode('A', b, c)# 初始化树对象,传入根节点bt = TwoTree(a)print("前序遍历")bt.pre_order(bt.root)print("\n中序遍历")bt.in_order(bt.root)print("\n后序遍历")bt.post_order(bt.root)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。