在面向对象中 对象不能包含对象
用 引用来控制对象
排序 二叉数:
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()
用 引用来控制对象
排序 二叉数:
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)
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个小孩
完毕!