# -*- coding: utf-8 -*-
class Binary_tree: #二叉树
value=None
left=None
right=None
def __init__(self,v,*kk):
self.value=v
print('增加新节点 值为: %d'%(self.value))
def toleft(self,tree):
self.left=tree
print('新增加的左枝 值为: %d'%tree.value)
def toright(self,tree):
self.right=tree
print('新增加的右枝 值为: %d'%tree.value)
class Sorting_binary_tree(Binary_tree):#排序二叉树
def __init__(self,v,*kk):
Binary_tree.__init__(self,v,kk)
#前序遍历 输出值
def prologue(root):
print(root.value,end=' ')
if root.left !=None:
prologue(root.left)
if root.right !=None:
prologue(root.right)
#中序遍历 输出值
def medium(root):
if root.left !=None:
medium(root.left)
print(root.value,end=' ')
if root.right !=None:
medium(root.right)
#后序遍历 输出值
def post_order(root):
if root.left !=None:
post_order(root.left)
if root.right !=None:
post_order(root.right)
print(root.value,end=' ')
#增加新节点
def add_value(root,sort_value):
if sort_value<root.value:
if root.left!=None:
add_value(root.left,sort_value)
else:
root.left=Binary_tree(sort_value)
else:
if root.right!=None:
add_value(root.right,sort_value)
else:
root.right=Binary_tree(sort_value)
#输出前 中 后序遍历
def show(root):
print('*'*30)
print('前序遍历 :',end=' ')
prologue(root)
print('')
print('中序遍历 :',end=' ')
medium(root)
print('')
print('后序遍历 :',end=' ')
post_order(root)
print('')
print('*'*30)
k=Sorting_binary_tree(50)#默认初始树根值为50
while(1):
a=input('请输入一个数: ')
add_value(k,int(a))
show(k)