Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例


Posted in Python onJuly 27, 2018

本文实例讲述了Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作。分享给大家供大家参考,具体如下:

实现一个功能:

    输入:一颗二叉树的先序和中序遍历
    输出:后续遍历

思想:

先序遍历中,第一个元素是树根
    在中序遍历中找到树根,左边的是左子树 右边的是右子树

Python代码:

# -*- coding:utf-8 -*-
def fromFMtoL( mid ):
  global las #全局后序遍历
  global fir #先序遍历
  root = fir[0]  #取出当前树根
  fir = fir[1:]  #取出树根后 先序遍历把根拿出来 下面一个元素做树根
  root_po = mid.find( root ) #在中序遍历当中树根的位置
  left = mid[0:root_po]  #左子树
  right = mid[root_po+1:len(mid)] #右子树
  '''
  后序遍历: 左 右 根 
  先左子树 再右子树 最后跟
  '''
  #有左子树的时候
  if len(left) > 0:
    fromFMtoL( left )
  #有右子树的时候
  if len(right) > 0:
    fromFMtoL( right )
  #树根写进结果
  las += root
if __name__ == "__main__" :
  # fir = input("请输入先序遍历:")   #前序遍历的结果
  # mid = input("请输入中序遍历:")   #中序遍历的结果
  fir = "DBACEGF"
  mid = "ABCDEFG"
  # fir = "ABC"
  # mid = "BAC"
  las = ""
  fromFMtoL( mid )
  print(las)

运行结果:

ACBFGED

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中实现远程调用(RPC、RMI)简单例子
Apr 28 Python
Python实现的一个找零钱的小程序代码分享
Aug 25 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
Vue的el-scrollbar实现自定义滚动
May 29 Python
对python list 遍历删除的正确方法详解
Jun 29 Python
python pandas库的安装和创建
Jan 10 Python
Appium+Python自动化测试之运行App程序示例
Jan 23 Python
python中比较两个列表的实例方法
Jul 04 Python
Python超越函数积分运算以及绘图实现代码
Nov 20 Python
Python 列表的清空方式
Jan 13 Python
Python基于Twilio及腾讯云实现国际国内短信接口
Jun 18 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 Python
tensorflow 加载部分变量的实例讲解
Jul 27 #Python
Python基于递归算法求最小公倍数和最大公约数示例
Jul 27 #Python
Python切片操作深入详解
Jul 27 #Python
对Tensorflow中的变量初始化函数详解
Jul 27 #Python
JavaScript中的模拟事件和自定义事件实例分析
Jul 27 #Python
浅谈tensorflow中几个随机函数的用法
Jul 27 #Python
tensorflow 中对数组元素的操作方法
Jul 27 #Python
You might like
解析strtr函数的效率问题
2013/06/26 PHP
JavaScript使用prototype定义对象类型(转)[
2006/12/22 Javascript
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
js随机生成一个验证码
2017/06/01 Javascript
bootstrap multiselect下拉列表功能
2017/08/22 Javascript
浅谈vue引入css,less遇到的坑和解决方法
2018/01/20 Javascript
浅谈Node.js 子进程与应用场景
2018/01/24 Javascript
在小程序中使用腾讯视频插件播放教程视频的方法
2018/07/10 Javascript
抖音上用记事本编写爱心小程序教程
2019/04/17 Javascript
Vue双向数据绑定(MVVM)的原理
2020/10/03 Javascript
JS如何操作DOM基于表格动态展示数据
2020/10/15 Javascript
[53:15]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS TNC
2018/03/30 DOTA
python查看微信好友是否删除自己
2016/12/19 Python
使用Python写CUDA程序的方法
2017/03/27 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
Flask之flask-session的具体使用
2018/07/26 Python
如何不用安装python就能在.NET里调用Python库
2019/07/12 Python
python将unicode和str互相转化的实现
2020/05/11 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
Python如何执行精确的浮点数运算
2020/07/31 Python
python中xlutils库用法浅析
2020/12/29 Python
CSS3模拟动画下拉菜单效果
2017/04/12 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
美国时尚配饰品牌:Dooney & Bourke
2017/11/14 全球购物
优秀团员个人的自我评价
2013/10/02 职场文书
30年同学聚会感言
2014/01/30 职场文书
数控专业自荐书范文
2014/03/16 职场文书
公司年会主持词
2014/03/22 职场文书
大学生通用个人自我评价
2014/04/27 职场文书
单位工作证明格式模板
2014/10/04 职场文书
2014年纪委工作总结
2014/12/05 职场文书
廉洁自律承诺书2015
2015/01/22 职场文书
如何用Python搭建gRPC服务
2021/06/30 Python
Python内置数据类型中的集合详解
2022/03/18 Python