python 递归遍历二叉树

我确定很多人不能真正的理解二叉树……

class Node:  def __init__(self,value=0,left=0,right=0):  self.value=value  self.left=left    #左子树self.right=right  #右子树def preTraverse(root):  '''前序遍历'''#print('#'*6)if root==0:#print('这个节点的值是',root)return 9 print(root.value)  preTraverse(root.left)  preTraverse(root.right)  def midTraverse(root): '''中序遍历'''if root==0:  #print('这个节点的值是',root)return  midTraverse(root.left)  print(root.value)  midTraverse(root.right)  def afterTraverse(root):  '''后序遍历'''if root==0:  return  afterTraverse(root.left)  afterTraverse(root.right)  print(root.value)if __name__=='__main__':root=Node('D',Node('B',Node('A'),Node('C')),Node('E',Node('G'),Node('F')))print('前序遍历:')preTraverse(root)print('\n')print('中序遍历:')midTraverse(root)print('\n')print('后序遍历:')afterTraverse(root)print('\n')
前序遍历:
D
B
A
C
E
G
F中序遍历:
A
B
C
D
G
E
F后序遍历:
A
C
B
G
F
E
D

先序遍历

对于二叉树的的遍历很可以用递归,递归很难理解,那我们就来捋一捋。

    if root==0:print('这个节点的值是',root)return 9print(root.value)preTraverse(root.left)preTraverse(root.right)

看懂这张图就看懂中序遍历

后序遍历

posted on 2018-06-26 22:30 luoganttcc 阅读(...) 评论(...) 编辑 收藏

python 递归遍历二叉树相关推荐

  1. 栈模拟递归 遍历二叉树的正确写法

    栈模拟递归 遍历二叉树的正确写法 二叉树的生成 树的层次遍历 前中后序遍历的递归实现 关于栈的实现 Reference 对于二叉树的生成,遍历,应该是树这个数据结构需要的基本功,只有真的理解了树的生成 ...

  2. 中序非递归遍历二叉树

    二叉树的递归算法虽然简单,但是会导致时间复杂度比较高,下面给大家带来用栈实现的二叉树非递归算法 首先定义好二叉树,和元素类型为二叉树的栈 typedef struct BiTNode{TElemTyp ...

  3. 由“递归遍历二叉树”引发的思考

    由"递归遍历二叉树"引发的思考 递归的用法我感觉自己已经掌握了,可是今天在递归遍历二叉树时,它又迷一样令我费解.我本人在算法这一块很薄弱,所以想把这个问题发出来,希望有大神能够为我 ...

  4. 【转】更简单的非递归遍历二叉树的方法

    [转]更简单的非递归遍历二叉树的方法 解决二叉树的很多问题的方案都是基于对二叉树的遍历.遍历二叉树的前序,中序,后序三大方法算是计算机科班学生必写代码了.其递归遍历是人人都能信手拈来,可是在手生时写出 ...

  5. 非递归遍历二叉树(算法导论第三版第十章10.4-5)

    非递归遍历二叉树(算法导论第三版第十章10.4-5) template<typename T> void TraverseBinaryTreeNonRecursive(BinaryTree ...

  6. python递归遍历目录_Python实现递归遍历文件夹并删除文件

    思路: 遍历文件夹下面的文件夹 如果文件夹名称等于".svn",则修改文件夹的属性(因为".svn"的文件都是只读的,你不能直接删除) 删除此文件夹 如果文件夹 ...

  7. 更简单的非递归遍历二叉树

    解决二叉树的很多问题的方案都是基于对二叉树的遍历.遍历二叉树的前序,中序,后序三大方法算是计算机科班学生必写代码了.其递归遍历是人人都能信手拈来,可是在手生时写出非递归遍历恐非易事.正因为并非易事,所 ...

  8. 数据结构专题 | 先序非递归遍历二叉树

    先序非递归遍历二叉树,主要是利用了栈的先进后出原理,用一个栈即可实现该算法,下面我们一起来看一下如何来实现吧 目录 先序建立二叉树 先序递归遍历二叉树 先序非递归遍历二叉树 先序建立二叉树 在进行先序 ...

  9. 非递归遍历二叉树实现和理解

    非递归遍历二叉树 1.前言 ​ 总所周知,二叉树的遍历分为先序遍历.中序遍历和后序遍历.遍历的顺序不同,则结果不同.而遍历方法也分递归和非递归.而二者的复杂度相同:时间复杂度为O(nlgn),空间复杂 ...

最新文章

  1. 计算机专业文档写作课件,计算机专业论文写作的方法.ppt
  2. Android平台根目录文件
  3. CTFshow 命令执行 web64
  4. sdut 3363 驴友计划
  5. GO语言eclipse开发环境搭建
  6. Oracle行列转换的思考与总结
  7. 【POJ】2454.Jersey Politics
  8. hdu 4339 Query 线段树 多校联合赛(四) 第九题
  9. python学习之生成器
  10. EmmyLua 断点调试、xlua断点调试
  11. 三阶科赫雪花PYTHON
  12. SEO和SEM的区别与联系有哪些?SEM和SEO是什么?
  13. 【最新】解决Github网页上图片显示失败的问题
  14. 特长生模拟——买装备
  15. 2E07-view-lists-Collapsed
  16. Redis从精通到入门——数据类型Zset实现源码详解
  17. linux调度不执行,linux crond.d定时调度执行一段时间后不执行
  18. 董树义 近代微波测量技术_潘时龙:28岁推开微波光子学大门
  19. bp神经网络解决什么问题,bp神经网络的改进方法
  20. P3644 [APIO2015]八邻旁之桥(中位数、堆)

热门文章

  1. python 项目生成 requirements.txt 文件
  2. 随机取若干条记录的SQL语句
  3. XML::Simple与Data::Dumper在Perl中的使用
  4. ubuntu上开启SSH服务
  5. Fuxi ServiceModeJob 多租户(Quota Group) 功能介绍
  6. 百度定位SDK实现获取当前经纬度及位置
  7. linux将bridge当做hub来用
  8. Socket编程之简单介绍
  9. WYSE率先支持RemoteFX功能
  10. 游戏外挂设计技术探讨