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 相关文章推荐
pycharm 使用心得(九)解决No Python interpreter selected的问题
Jun 06 Python
在Python中使用NLTK库实现对词干的提取的教程
Apr 08 Python
Python进行数据提取的方法总结
Aug 22 Python
带你了解python装饰器
Jun 15 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
python脚本之一键移动自定格式文件方法实例
Sep 02 Python
Python 使用元类type创建类对象常见应用详解
Oct 17 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
Django 批量插入数据的实现方法
Jan 12 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
May 22 Python
python中Mako库实例用法
Dec 31 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 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
PHP 加密/解密函数 dencrypt(动态密文,带压缩功能,支持中文)
2009/01/30 PHP
PHP 文件类型判断代码
2009/03/13 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
Thinkphp框架中D方法与M方法的区别
2016/12/23 PHP
php实现与python进行socket通信的方法示例
2017/08/30 PHP
Laravel中前端js上传图片到七牛云的示例代码
2017/09/04 PHP
php单元测试phpunit入门实例教程
2017/11/17 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
预加载css或javascript的js代码
2010/04/23 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
2014/06/15 Javascript
详解js中class的多种函数封装方法
2016/01/03 Javascript
jquery实现ajax提交表单信息的简单方法(推荐)
2016/08/24 Javascript
vue+element-ui实现表格编辑的三种实现方式
2018/10/31 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
Angular 多级路由实现登录页面跳转(小白教程)
2019/11/19 Javascript
微信小程序实现Swiper轮播图效果
2019/11/22 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
[03:40]DOTA2抗疫特别篇《英雄年代》
2020/02/28 DOTA
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
Django之无名分组和有名分组的实现
2019/04/16 Python
python实现淘宝购物系统
2019/10/25 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
Python 序列化和反序列化库 MarshMallow 的用法实例代码
2020/02/25 Python
django执行原始查询sql,并返回Dict字典例子
2020/04/01 Python
django实现模型字段动态choice的操作
2020/04/01 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
amazeui页面校验功能的实现代码
2020/08/24 HTML / CSS
美国受信赖的教育产品供应商:Nest Learning
2018/06/14 全球购物
爷爷追悼会答谢词
2014/01/24 职场文书
《湘夫人》教学反思
2014/02/21 职场文书
环境监测与治理技术专业求职信
2014/07/06 职场文书
房屋产权证明书
2014/10/15 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python