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培训讲解二叉树的三种深度相关推荐

  1. Python教程讲解二叉树的三种深度

    python代码实现了二叉树,这次将会实现二叉树的几种遍历方法,来更好的解析二叉树的结构特点.分别是一种广度遍历,和三种深度遍历方法:先序遍历,中序遍历,后序遍历.下面是代码实现: 1.先序遍历 遍历 ...

  2. Python实现二叉树的三种深度遍历方法!

    python代码实现了二叉树,这次将会实现二叉树的几种遍历方法,来更好的解析二叉树的结构特点.分别是一种广度遍历,和三种深度遍历方法:先序遍历,中序遍历,后序遍历.下面是代码实现: 1.先序遍历 遍历 ...

  3. Python二叉树的三种深度优先遍历

    Python二叉树的三种深度优先遍历 一.广度优先遍历和深度优先遍历 对二叉树进行遍历(traversal)是指依次对树中每个节点进行访问,在遍历的过程中实现需要的业务. 对树的遍历方式有广度优先遍历 ...

  4. C语言基本数据结构之二(二叉树的三种遍历,节点数以及深度算法)

    关于二叉树的定义,网上有比较好的介绍,在这里就简单介绍二叉树的一些性质 二叉树的基本性质 1)二叉树的第i层上至多有 2^(i-1)(i ≥1)个结点: 2)深度为 h 的二叉树中至多含有 2^h – ...

  5. python序列类型包括哪三种映射类型_python序列类型包括哪三种_后端开发

    python中表达式4+0.5值的数据类型为?_后端开发 python中表达式4+0.5值的数据类型为浮点型,因为4是整型,0.5是浮点型,在python中规定整型和浮点型相加,结果是浮点型,这是为了 ...

  6. c语言中二叉树中总结点,C语言二叉树的三种遍历方式的实现及原理

    二叉树遍历分为三种:前序.中序.后序,其中序遍历最为重要.为啥叫这个名字?是根据根节点的顺序命名的. 比如上图正常的一个满节点,A:根节点.B:左节点.C:右节点,前序顺序是ABC(根节点排最先,然后 ...

  7. 二叉树的三种遍历(递归与非递归) + 层次遍历

    <转载于  >>> > 二叉树是一种非常重要的数据结构,很多其他数据机构都是基于二叉树的基础演变过来的.二叉树有前.中.后三种遍历方式,因为树的本身就是用递归定义的,因此 ...

  8. 二叉树----数据结构:二叉树的三种遍历及习题

    二叉树----数据结构:二叉树的三种遍历,利用递归算法. 关于二叉树的遍历,应用非常广泛,不单单是访问打印结点,还可以进行一系列的操作,如赋值.删除.查找.求二叉树的深度等等. 有递归和非递归两种算法 ...

  9. 实现二叉树的三种非递归遍历算法

    [问题描述] 编写程序,实现二叉树的三种非递归遍历算法:先序非递归,中序非递归,后序非递归. [输入形式] 输入建树序列. [输出形式] 输出三种遍历序列. [样例输入] A B C # # # # ...

最新文章

  1. android原生跳转到外网
  2. pytho基础之文件处理
  3. JavaScript 把字符串类型转换成日期类型
  4. 如何解读「量子计算应对大数据挑战:中国科大首次实现量子机器学习算法」?——是KNN算法吗?...
  5. linux ls只显示文件名或者文件夹名
  6. grldr 和 grldr.mbr 区别
  7. 只要你想学,分分钟钟用H5教会你玩转魔方
  8. CodeForces - 1295C Obtain The String(dp预处理+贪心)
  9. 水解聚丙烯酰胺 php,聚丙烯酰胺水溶液的流变性质
  10. 【Python实战】使用python计算多种类型到期还款日
  11. 近找到了一个免费的python教程,两周学会了python开发【内附学习视频】
  12. 易混淆知识点(2):display:none与visible:hidden的区别
  13. rs232接口_RS232接口与RS485的区别
  14. Go 语言为什么能成功?
  15. Git使用教程:超详细、超傻瓜、超浅显、真正手把手教
  16. 经典剖析电源PCB布板与EMC的关系(上)
  17. 机器学习与模式识别期末试题回忆
  18. IDEA 2017 破解 license 激活
  19. 逆向基础(一) | WooYun知识库
  20. 大数据告诉你——垃圾围城,现行的垃圾分类制度,作用到底能有多大?

热门文章

  1. Java基础 - 面向对象 - 构造方法
  2. 8个免费实用的C++GUI库
  3. 《QTP自动化测试进阶》(1)
  4. 构建插件式的应用程序框架(六)----通讯机制(ZT)
  5. SSM框架之批量增加示例(同步请求jsp视图解析)
  6. FastJson 简单使用
  7. 用电脑自带画图工具加字方法
  8. expect脚本同步文件、 expect脚本指定host和要同步的文件 、 构建文件分发系统 、批量远程执行命令...
  9. perl 的基本数据类型
  10. Openreach与华为/诺基亚签署G.fast协议