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使用Selenium+BeautifulSoup爬取淘宝搜索页
Feb 24 Python
解决python3 json数据包含中文的读写问题
May 10 Python
Python文件循环写入行时防止覆盖的解决方法
Nov 09 Python
Python实现的调用C语言函数功能简单实例
Mar 13 Python
python机器学习库scikit-learn:SVR的基本应用
Jun 26 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
pandas read_excel()和to_excel()函数解析
Sep 19 Python
python多进程并发demo实例解析
Dec 13 Python
Tensorflow 使用pb文件保存(恢复)模型计算图和参数实例详解
Feb 11 Python
Python Django2 model 查询介绍(条件、范围、模糊查询)
Mar 16 Python
python能否java成为主流语言吗
Jun 22 Python
Python读取ini配置文件传参的简单示例
Jan 05 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数组添加元素方法小结
2014/12/20 PHP
Linux系统递归生成目录中文件的md5的方法
2015/06/29 PHP
PHPMailer ThinkPHP实现自动发送邮件功能
2018/06/10 PHP
CentOS7编译安装php7.1的教程详解
2019/04/18 PHP
在html页面中包含共享页面的方法
2008/10/24 Javascript
修改jquery里的dialog对话框插件为框架页(iframe) 的方法
2010/09/14 Javascript
jQuery效果 slideToggle() 方法(在隐藏和显示之间切换)
2011/06/28 Javascript
扩展js对象数组的OrderByAsc和OrderByDesc方法实现思路
2013/05/17 Javascript
Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例
2013/08/28 Javascript
将Datatable转化成json发送前台实现思路
2013/09/06 Javascript
设置checkbox为只读(readOnly)的两种方式
2013/10/11 Javascript
JS实现图片产生波纹一样flash效果的方法
2015/02/27 Javascript
多种JQuery循环滚动文字图片效果代码
2020/06/23 Javascript
Bootstrap Modal对话框如何在关闭时触发事件
2016/12/02 Javascript
AngularJS基于ngInfiniteScroll实现下拉滚动加载的方法
2016/12/14 Javascript
Node.js常用工具之util模块
2017/03/09 Javascript
webpack打包后直接访问页面图片路径错误的解决方法
2017/06/17 Javascript
详解vue2.0 transition 多个元素嵌套使用过渡
2017/06/19 Javascript
浅谈react.js中实现tab吸顶效果的问题
2017/09/06 Javascript
jquery ajax加载数据前台渲染方式 不用for遍历的方法
2018/08/09 jQuery
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
JavaScript实现图片上传并预览并提交ajax
2019/09/30 Javascript
JS时间戳与日期格式互相转换的简单方法示例
2021/01/30 Javascript
在Python中利用Pandas库处理大数据的简单介绍
2015/04/07 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
CentOS下使用yum安装python-pip失败的完美解决方法
2017/08/16 Python
Django migrations 默认目录修改的方法教程
2018/09/28 Python
python读取文件名并改名字的实例
2019/01/07 Python
Python实现七个基本算法的实例代码
2020/10/08 Python
css3中单位px,em,rem,vh,vw,vmin,vmax的区别及浏览器支持情况
2016/12/06 HTML / CSS
澳大利亚个性化儿童礼品网站:Bright Star Kids
2019/06/14 全球购物
电子商务求职信
2014/06/15 职场文书
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python
MySQL的存储过程和相关函数
2022/04/26 MySQL