# 二叉树排序
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