16_数据结构与算法_遍历树(前序、中序、后序)_Python实现

本文详细介绍了如何使用Python创建二叉树,并实现前序、中序和后序遍历。通过具体的代码示例,读者可以深入理解二叉树的结构及遍历算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#Created By: Chen Da

#定义一个二叉树的类
class Binary_Tree(object):
    def __init__(self,root):
        self.key = root
        self.left_child = None
        self.right_child = None

    def insert_left(self,node):
        if self.left_child is None:
            self.left_child = Binary_Tree(node)
        else:
            tree_ = Binary_Tree(node)
            tree_.left_child = self.left_child
            self.left_child = tree_

    def insert_right(self,node):
        if self.right_child is None:
            self.right_child = Binary_Tree(node)
        else:
            tree_ = Binary_Tree(node)
            tree_.left_child = self.left_child
            self.left_child = tree_

    def get_left_child(self):
        return self.left_child

    def get_right_child(self):
        return self.right_child

    def get_root_val(self):
        return self.key

    def set_root(self,obj):
        self.key = obj


#二叉树的前序遍历(首先访问根节点,然后递归的对左子树进行前序遍历,接着递归的对右子树进行前序遍历)
#这里是采用的了外部函数的形式,也可以把previous_order()作为一个方法写到树的类中
def previous_order(tree):
    if tree != None:
        print(tree.get_root_val())
        previous_order(tree.get_left_child())
        previous_order(tree.get_right_child())

#二叉树的后序遍历(递归地对左子树进行后序遍历,然后递归地对右子树进行后序遍历,最后返回根节点)
def post_order(tree):
    if tree != None:
        post_order(tree.get_left_child())
        post_order(tree.get_right_child())
        print(tree.get_root_val())

#二叉树的中序遍历(递归的对左子树进行中序遍历,接着返回根节点,然后递归的对右子树进行中序遍历)
def inner_order(tree):
    if tree != None:
        inner_order(tree.get_left_child())
        print(tree.get_root_val())
        inner_order(tree.get_right_child())

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值