python:二叉树的三种深度
python代码实现了二叉树,这次将会实现二叉树的几种遍历方法,来更好的解析二叉树的结构特点。分别是一种广度遍历,和三种深度遍历方法:先序遍历,中序遍历,后序遍历。下面是代码实现:
1、先序遍历
遍历顺序:根==》左子树==》右子树,实现代码:
def pre(self,node):#定义一个先序遍历的方法
if node is None:#判断节点是否为空,为空则返回
return
print(node.elem,end=' ')#打印遍历的节点
self.pre(node.left)#递归左子树
self.pre(node.right)#递归右子树
2、中序遍历
遍历顺序:左子树==》根 ==》右子树,实现代码:
def md(self,node):#定义一个中序遍历的方法
if node is None: #判断节点是否为空,为空则返回
return
self.md(node.left) #递归左子树
print(node.elem,end=' ') #打印遍历的节点
self.md(node.right) #递归右子树
3、后序遍历
遍历顺序:左子树==》右子树==》根,实现代码:
def bhd(self,node):#定义一个后序遍历的方法
if node is None:#判断节点是否为空,为空返回
return
self.bhd(node.left)#递归左子树
self.bhd(node.right)#递归右子树
print(node.elem,end=' ')#打印遍历的节点
打印结果:
if __name__ == "__main__":
tree=Tree()
tree.add(0)
tree.add(1)
tree.add(2)
tree.add(3)
tree.add(4)
tree.add(5)
tree.add(6)
tree.add(7)
tree.add(8)
tree.pre(tree.root)#打印先序遍历的值
print(' ')
tree.md(tree.root)#打印中序遍历的值
print(' ')
tree.bhd(tree.root)#打印后序遍历的值
print(' ')
#输出:
# 0 1 3 7 8 4 2 5 6 先序遍历的值
# 7 3 8 1 4 0 5 2 6 中序遍历的值
# 7 8 3 4 1 5 6 2 0 后序遍历的值
总结二叉树的三种深度遍历的实现主要是利用了递归,利用不同的遍历顺序来改变递归的顺序和节点打印的顺序来实现,利用这一特点就可以用python快速的实现三种遍历方法了。
注:本文部分文字和图片来源于网络,如有侵权,请联系删除。版权归原作者所有!此页面下方声明无效!
猜你喜欢LIKE
相关推荐HOT
更多>>Python如何导入自定义模块?
在Python中,一个文件就叫做一个模块,每一个模块在Python里都被看做是一个独立的文件,以.py为后缀名。模块包含了Python对象定义和Python语句...详情>>
2022-12-01 17:30:29Python中注释方式分为哪两种?
在Python中,注释方式大致分为两种:单行注释和多行注释,#表示单行注释,'''或"""表示多行注释,接下来我们通过这篇文章为大家详细的讲解一下...详情>>
2022-12-01 17:27:32Python语言如何解析参数?
每种编程语言都有创建脚本并从终端运行它们或被其他程序调用的功能,在运行此类脚本时,我们经常需要传递脚本所需的参数,以便在脚本内执行各种...详情>>
2022-12-01 17:24:00Python中水仙花数如何输出?
所谓“Python中水仙花数”是指一个三位数,其各位数字立方和等于该数本身。用Python输出水仙花数,对于有面试需求或者对算法感兴趣的同学,是一...详情>>
2022-12-01 17:20:40Python中如何优化SQL语句?
编程人员一定不陌生SQL语句吧,在我们日常写项目过程中,或多或少都会使用到SQL,SQL主要功能有增删改查,其中最常见的就是查询了,因此SQL语句...详情>>
2022-12-01 17:17:11Python培训问答更多>>
新数据分析师自学要多久?才能赚到更多钱呢
新Python主要用来做什么?
新如何才能知道python语言特点是什么?
新通过培训机构可以更好的学习怎么进行数据分析?
新数据分析培训课程可以免费试听的好处有哪些?
新数据分析师是干嘛的?为什么很多年轻人都会选这个行业?
新数据分析师要学什么才能达到更专业的状态呢
Python面试题库 更多>>
Python中的pass语句是什么?
怎样将字符串转换为小写?
怎么移除一个字符串中的前导空格?
python中的标识符长度能有多长?
Python区分大小写吗?
解释Python中的join()和split()函数
- 北京校区
- 大连校区
- 广州校区
- 成都校区
- 杭州校区
- 长沙校区
- 合肥校区
- 南京校区
- 上海校区
- 深圳校区
- 武汉校区
- 郑州校区
- 西安校区
- 青岛校区
- 重庆校区
- 太原校区
- 沈阳校区
- 南昌校区
- 哈尔滨校区