您的位置:首页 > 编程语言 > Python开发

python实现二叉树排序

2017-11-22 11:11 337 查看
一 代码

classBTree:


def __init__(self,value):


self.left =None


self.data = value


self.right =None


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)




#中序遍历


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 =[3,5,7,20,43,2,15,30]


Root=BTree(l[0])


node =Root


for i in range(1,len(l)):


insert(Root,l[i])


print('***********************')


print('从小到大')


print('***********************')


inorder(Root)


print('***********************')


print('从大到小')


print('***********************')


rinorder(Root)


print('***********************')


 

二 运行结果

***********************
从小到大
***********************
2
3
5
7
15
20
30
43
***********************
从大到小
***********************
43
30
20
15
7
5
3
2
***********************
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: