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两种遍历字典(dict)的方法比较
May 29 Python
python3爬取各类天气信息
Feb 24 Python
Python3导入自定义模块的三种方法详解
Apr 13 Python
python用户评论标签匹配的解决方法
May 31 Python
Python找出微信上删除你好友的人脚本写法
Nov 01 Python
详解Python使用Plotly绘图工具,绘制甘特图
Apr 02 Python
Python合并2个字典成1个新字典的方法(9种)
Dec 19 Python
python实现在线翻译功能
Mar 03 Python
Python 字典中的所有方法及用法
Jun 10 Python
scrapy redis配置文件setting参数详解
Nov 18 Python
python 实现学生信息管理系统的示例
Nov 28 Python
用python修改excel表某一列内容的操作方法
Jun 11 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多层数组与对象的转换实例代码
2013/08/05 PHP
php汉字转拼音的示例
2014/02/27 PHP
使用PHP进行微信公众平台开发的示例
2015/08/21 PHP
js 控制图片大小核心讲解
2013/10/09 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
2016/08/28 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)
2016/12/14 Javascript
jQuery纵向导航菜单效果实现方法
2016/12/19 Javascript
基于vue-upload-component封装一个图片上传组件的示例
2018/10/16 Javascript
值得收藏的八个常用的js正则表达式
2018/10/19 Javascript
vue-cli3全面配置详解
2018/11/14 Javascript
vue实现表格合并功能
2020/12/01 Vue.js
如何在vue 中使用柱状图 并自修改配置
2021/01/21 Vue.js
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
Python不规范的日期字符串处理类
2014/06/10 Python
通过python的matplotlib包将Tensorflow数据进行可视化的方法
2019/01/09 Python
Python File(文件) 方法整理
2019/02/18 Python
Python对列表的操作知识点详解
2019/08/20 Python
django框架创建应用操作示例
2019/09/26 Python
wxPython多个窗口的基本结构
2019/11/19 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
枚举和一组预处理的#define有什么不同
2016/09/21 面试题
个人找工作求职简历的自我评价
2013/10/20 职场文书
北大研究生linux应用求职信
2013/10/29 职场文书
遗嘱公证书标准样本
2014/04/08 职场文书
竞选大队长演讲稿
2014/04/29 职场文书
假面舞会策划方案
2014/05/29 职场文书
安全责任书模板
2014/07/22 职场文书
大专毕业生自我鉴定范文(2篇)
2014/09/27 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
法制教育观后感
2015/06/17 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
分享3个非常实用的 Python 模块
2022/03/03 Python
Javascript中async与await的捕捉错误详解
2022/03/03 Javascript
SQL Server使用导出向导功能
2022/04/08 SQL Server