二叉树是数据结构中的一种数据结构,在用Python搭建决策树模型时,发现需要先实现多叉树.
#usr/bin/python
#-*-coding:utf-8-*-
#面对对象编程:思想:面对对象永远不能包含对象
#二叉树:
class BTree:
root=None
class Node:
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)
def zhongxu(self):
self.root.zhongxu()
if __name__ == '__main__':
btree = BTree()
btree.add(13)
btree.add(7)
btree.add(21)
btree.add(11)
btree.add(17)
btree.add(9)
btree.add(14)
btree.add(5)
btree.add(3)
btree.add(10)
btree.zhongxu()
小练习:如果有100个小孩在围成一圈做游戏,从头开始报数每当喊道第三个人的时候,那人将退出游戏.问最后一个是哪个小孩?
xiaohai=[i for i in range(1,11)]
count=0
while True:
if len(xiaohai)==1:
break
count+=1
if count%3==0:
xiaohai.pop(0)
else:
xiaohai.append(xiaohai.pop(0))#pop(0)的意思删除第一个小孩
print('每次报数的顺序是:',xiaohai)
print('剩余最后一个小孩是:',xiaohai,'号')