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实现linux服务器批量修改密码并生成execl
Apr 22 Python
python使用Pycharm创建一个Django项目
Mar 05 Python
Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例
Mar 15 Python
pycharm 配置远程解释器的方法
Oct 28 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
Python Django切换MySQL数据库实例详解
Jul 16 Python
python实现屏保程序(适用于背单词)
Jul 30 Python
Python用类实现扑克牌发牌的示例代码
Jun 01 Python
anaconda3安装及jupyter环境配置全教程
Aug 24 Python
Python爬虫抓取论坛关键字过程解析
Oct 19 Python
Python创建简单的神经网络实例讲解
Jan 04 Python
Python合并多张图片成PDF
Jun 09 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
收音机术语解释
2021/03/01 无线电
如何使用php输出时间格式
2013/08/31 PHP
基于PHP实现栈数据结构和括号匹配算法示例
2017/08/10 PHP
laravel-admin 实现在指定的相册下添加照片
2019/10/21 PHP
js getElementsByTagName的简写方式
2010/06/27 Javascript
jQuery实现可拖动的浮动层完整代码
2013/05/27 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
底部悬浮通栏可以关闭广告位的实现方法
2016/06/01 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
javascript基础练习之翻转字符串与回文
2017/02/20 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
基于Bootstrap分页的实例讲解(必看篇)
2017/07/04 Javascript
原生JS实现循环Nodelist Dom列表的4种方式示例
2018/02/11 Javascript
快速解决vue-cli不能初始化webpack模板的问题
2018/03/20 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
详解json串反转义(消除反斜杠)
2019/08/12 Javascript
Jquery异步上传文件代码实例
2019/11/13 jQuery
js实现数据导出为EXCEL(支持大量数据导出)
2020/03/31 Javascript
[03:01]DOTA2英雄基础教程 露娜
2014/01/07 DOTA
python算法学习之计数排序实例
2013/12/18 Python
python Django批量导入数据
2016/03/25 Python
python读取和保存图片5种方法对比
2018/09/12 Python
对pandas中时间窗函数rolling的使用详解
2018/11/28 Python
利用python-pypcap抓取带VLAN标签的数据包方法
2019/07/23 Python
Python sep参数使用方法详解
2020/02/12 Python
Python flask路由间传递变量实例详解
2020/06/03 Python
解决Pymongo insert时会自动添加_id的问题
2020/12/05 Python
英国最大的电子零件及配件零售商:Partmaster
2017/04/24 全球购物
大门门卫岗位职责
2013/11/30 职场文书
法学个人求职信范文
2014/01/27 职场文书
学校清明节活动总结
2014/07/04 职场文书
领导干部“四风”问题批评与自我批评材料
2014/09/24 职场文书
2015年社区科普工作总结
2015/05/13 职场文书
舞出我人生观后感
2015/06/16 职场文书
爱国影片观后感
2015/06/18 职场文书
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android