python二叉数排序

本文详细介绍了如何使用Python编程语言实现二叉树排序,包括二叉树的插入操作和排序过程。通过实例代码,读者将能够理解二叉树排序的工作原理及其在数据处理中的应用。

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

在面向对象中 对象不能包含对象
用 引用来控制对象
排序    二叉数:
class BTree:
    root=None#根
   
class Node:#创建了3个盒子
      
  data=None
        left=None
        right=None
        # 核心
        def zhongxu(self):
            if self.left is not None:
                self.left.zhongxu()
            print(self.data)
            if self.right is not None:
                self.right.zhongxu()
        def add(self,node):  #节点对比
        
    if self.data > node.data:
                if self.left is None:
                    self.left=node
                else:
                    self.left.add(node)
            if self.data < node.data:
                if self.right is None:
                    self.right=node
                else:
                    self.right.add(node)
    def add(self,data):
        node=self.Node()
        node.data=data
        if self.root is None:
            self.root=node
        else:
            self.root.add(node)  #去add里么对比
    def zhongxu(self):
        self.root.zhongxu()
if __name__=="__main__":
    btree = BTree()
    btree.add(13)
    btree.add(6)
    btree.add(9)
    btree.add(23)
    btree.add(58)
    btree.add(0)
    btree.add(78)
    btree.add(-1)
    btree.zhongxu()
如图:

知识延伸:
排序分为:1.时间复杂度  2.空间复杂度
冒泡排序:时间、空间复杂度都高

知识问答:
从1--100开始数,有10个小孩围成一个圈,每个小孩代表1个数,只要是3的倍数,就把那个小孩排除,问最后剩下第几个小孩(注:最后只能剩下一个)?
iaohai=[i for i in range(1,11)]#10个小孩
count = 0
while True:
    if len(xiaohai) ==1:
        break
    count +=1
    if count %3 ==0:
        xiaohai.pop(0)
    else:
        xiaohai.append(xiaohai.pop(0))#xiaohai.pop(0):开头
    print(xiaohai)
如图:

答:最后剩下第4个小孩

完毕!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值