Python实现二叉树排序

# 二叉树排序
class BTree:
    def __init__(self, value):
        self.left = None
        self.right = None
        self.data = value
    def insertLeft(self, value):
        self.left = BTree(value)
        return self.left
    def insertRight(self, value):
        self.right = BTree(value)
        return self.right
    def show(self):
        print(self.data, end = ' ')

def inorder(node):
    if node.data:
        if node.left:
            inorder(node.left)
        node.show()
        if node.right:
            inorder(node.right)
def rinorder(node):
    if node.data:
        if node.right:
            rinorder(node.right)
        node.show()
        if node.left:
            rinorder(node.left)
def insert(node, value):
    if value > node.data:
        if (node.right):
            insert(node.right, value)
        else:
            node.insertRight(value)
    else:
        if node.left:
            insert(node.left, value)
        else:
            node.insertLeft(value)

if __name__ == '__main__':
    l = [23,54,10,89,64,28,85,76,25]
    root = BTree(l[0])
    node = root
    for i in range(1, len(l)):
        insert(node, l[i])
    print("原始:", end=" ")
    print(l)
    print("升序: ", end = "")
    inorder(root)
    print("\n降序: ", end = "")
    rinorder(root)
    print("")

 

----------------------------------------------------------

原始: [23, 54, 10, 89, 64, 28, 85, 76, 25]
升序: 10 23 25 28 54 64 76 85 89 
降序: 89 85 76 64 54 28 25 23 10 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值