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快速的实现三种遍历方法了。
Python培训讲解二叉树的三种深度相关推荐
- Python教程讲解二叉树的三种深度
python代码实现了二叉树,这次将会实现二叉树的几种遍历方法,来更好的解析二叉树的结构特点.分别是一种广度遍历,和三种深度遍历方法:先序遍历,中序遍历,后序遍历.下面是代码实现: 1.先序遍历 遍历 ...
- Python实现二叉树的三种深度遍历方法!
python代码实现了二叉树,这次将会实现二叉树的几种遍历方法,来更好的解析二叉树的结构特点.分别是一种广度遍历,和三种深度遍历方法:先序遍历,中序遍历,后序遍历.下面是代码实现: 1.先序遍历 遍历 ...
- Python二叉树的三种深度优先遍历
Python二叉树的三种深度优先遍历 一.广度优先遍历和深度优先遍历 对二叉树进行遍历(traversal)是指依次对树中每个节点进行访问,在遍历的过程中实现需要的业务. 对树的遍历方式有广度优先遍历 ...
- C语言基本数据结构之二(二叉树的三种遍历,节点数以及深度算法)
关于二叉树的定义,网上有比较好的介绍,在这里就简单介绍二叉树的一些性质 二叉树的基本性质 1)二叉树的第i层上至多有 2^(i-1)(i ≥1)个结点: 2)深度为 h 的二叉树中至多含有 2^h – ...
- python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发
python中表达式4+0.5值的数据类型为?_后端开发 python中表达式4+0.5值的数据类型为浮点型,因为4是整型,0.5是浮点型,在python中规定整型和浮点型相加,结果是浮点型,这是为了 ...
- c语言中二叉树中总结点,C语言二叉树的三种遍历方式的实现及原理
二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个名字?是根据根节点的顺序命名的. 比如上图正常的一个满节点,A:根节点.B:左节点.C:右节点,前序顺序是ABC(根节点排最先,然后 ...
- 二叉树的三种遍历(递归与非递归) + 层次遍历
<转载于 >>> > 二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的.二叉树有前.中.后三种遍历方式,因为树的本身就是用递归定义的,因此 ...
- 二叉树----数据结构:二叉树的三种遍历及习题
二叉树----数据结构:二叉树的三种遍历,利用递归算法. 关于二叉树的遍历,应用非常广泛,不单单是访问打印结点,还可以进行一系列的操作,如赋值.删除.查找.求二叉树的深度等等. 有递归和非递归两种算法 ...
- 实现二叉树的三种非递归遍历算法
[问题描述] 编写程序,实现二叉树的三种非递归遍历算法:先序非递归,中序非递归,后序非递归. [输入形式] 输入建树序列. [输出形式] 输出三种遍历序列. [样例输入] A B C # # # # ...
最新文章
- android原生跳转到外网
- pytho基础之文件处理
- JavaScript 把字符串类型转换成日期类型
- 如何解读「量子计算应对大数据挑战:中国科大首次实现量子机器学习算法」?——是KNN算法吗?...
- linux ls只显示文件名或者文件夹名
- grldr 和 grldr.mbr 区别
- 只要你想学,分分钟钟用H5教会你玩转魔方
- CodeForces - 1295C Obtain The String(dp预处理+贪心)
- 水解聚丙烯酰胺 php,聚丙烯酰胺水溶液的流变性质
- 【Python实战】使用python计算多种类型到期还款日
- 近找到了一个免费的python教程,两周学会了python开发【内附学习视频】
- 易混淆知识点(2):display:none与visible:hidden的区别
- rs232接口_RS232接口与RS485的区别
- Go 语言为什么能成功?
- Git使用教程:超详细、超傻瓜、超浅显、真正手把手教
- 经典剖析电源PCB布板与EMC的关系(上)
- 机器学习与模式识别期末试题回忆
- IDEA 2017 破解 license 激活
- 逆向基础(一) | WooYun知识库
- 大数据告诉你——垃圾围城,现行的垃圾分类制度,作用到底能有多大?
热门文章
- Java基础 - 面向对象 - 构造方法
- 8个免费实用的C++GUI库
- 《QTP自动化测试进阶》(1)
- 构建插件式的应用程序框架(六)----通讯机制(ZT)
- SSM框架之批量增加示例(同步请求jsp视图解析)
- FastJson 简单使用
- 用电脑自带画图工具加字方法
- expect脚本同步文件、 expect脚本指定host和要同步的文件 、 构建文件分发系统 、批量远程执行命令...
- perl 的基本数据类型
- Openreach与华为/诺基亚签署G.fast协议