Python 排序二叉树 三种遍历实现

本文详细介绍了二叉树和排序二叉树的数据结构实现,包括节点的增加、遍历等核心操作。通过具体代码展示了如何构建并操作这两种树结构,适合初学者理解和实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# -*- 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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值