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字符串排序方法
Aug 29 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
详解Python使用tensorflow入门指南
Feb 09 Python
利用python如何处理nc数据详解
May 23 Python
python3判断url链接是否为404的方法
Aug 10 Python
Python3 log10()函数简单用法
Feb 19 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
Python中关于浮点数的冷知识
Sep 22 Python
Python中的 ansible 动态Inventory 脚本
Jan 19 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
Python Django路径配置实现过程解析
Nov 05 Python
python在地图上画比例的实例详解
Nov 13 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数据库操作面向对象的优点
2006/10/09 PHP
PHP实现根据图片色界在不同位置加水印的方法
2015/08/08 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
javascript实现存储hmtl字符串示例
2014/04/25 Javascript
简单谈谈javascript代码复用模式
2015/01/28 Javascript
javascript实现点击单选按钮链接转向对应网址的方法
2015/08/12 Javascript
深入理解javascript的getTime()方法
2017/02/16 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
Parcel 打包示例(React HelloWorld)
2018/01/16 Javascript
从零开始最小实现react服务器渲染详解
2018/01/26 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
webpack自动打包和热更新的实现方法
2019/06/24 Javascript
Nuxt.js实战和配置详解
2019/08/05 Javascript
angularjs自定义过滤器demo示例
2019/08/24 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
Vue实现图片与文字混输效果
2019/12/04 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
[01:31:22]DOTA2-DPC中国联赛定级赛 LBZS vs Magma BO3第二场 1月10日
2021/03/11 DOTA
python 多线程实现检测服务器在线情况
2015/11/25 Python
Windows下搭建python开发环境详细步骤
2020/07/20 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python传递参数的多种方式(小结)
2019/09/18 Python
Python爬取股票信息,并可视化数据的示例
2020/09/26 Python
Pandas之缺失数据的实现
2021/01/06 Python
html5在移动端的屏幕适应问题示例探讨
2014/06/15 HTML / CSS
暇步士官网:Hush Puppies
2016/09/22 全球购物
土耳其时尚购物网站:Morhipo
2017/09/04 全球购物
Shein英国:女性时尚网上商店
2019/04/10 全球购物
乔迁宴答谢词
2014/01/21 职场文书
精彩的英文自荐信
2014/01/30 职场文书
住宅质量保证书
2014/04/29 职场文书
铣床操作工岗位职责
2014/06/13 职场文书
社区文明创建工作总结2015
2015/04/21 职场文书
python中数组和列表的简单实例
2022/03/25 Python