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实现带错误处理功能的远程文件读取方法
Apr 29 Python
使用Python编写简单的画图板程序的示例教程
Dec 08 Python
以一个投票程序的实例来讲解Python的Django框架使用
Feb 18 Python
python3 与python2 异常处理的区别与联系
Jun 19 Python
Python 基础教程之包和类的用法
Feb 23 Python
Python遍历pandas数据方法总结
Feb 09 Python
Python从Excel中读取日期一列的方法
Nov 28 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
Dec 20 Python
Python3实现定时任务的四种方式
Jun 03 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 Python
使用Python求解带约束的最优化问题详解
Feb 11 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
Feb 15 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
「OVERLORD」动画重要删减!雅儿贝德的背叛?至尊猎杀队结成
2020/04/09 日漫
PHPlet在Windows下的安装
2006/10/09 PHP
PHPnow安装服务[apache_pn]失败的问题的解决方法
2010/09/10 PHP
php在多维数组中根据键名快速查询其父键以及父键值的代码
2011/05/07 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
yii操作session实例简介
2014/07/31 PHP
摘自织梦CMS中的图片处理类
2015/08/08 PHP
php 微信开发获取用户信息如何实现
2016/12/13 PHP
php技巧小结【推荐】
2017/01/19 PHP
PHP+MySql实现一个简单的留言板
2020/07/19 PHP
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
JavaScript 调试器简介
2009/02/21 Javascript
JavaScript在IE和Firefox(火狐)的不兼容问题解决方法小结
2010/04/13 Javascript
JavaScript输入邮箱自动提示实例代码
2014/01/13 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
javascript实现平滑无缝滚动
2020/08/09 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
轻松学习Javascript闭包
2017/03/01 Javascript
详解vue-cli本地环境API代理设置和解决跨域
2017/09/05 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
使用python实现baidu hi自动登录的代码
2013/02/10 Python
python学习笔记之调用eval函数出现invalid syntax错误问题
2015/10/18 Python
python自带的http模块详解
2016/11/06 Python
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
Python装饰器的执行过程实例分析
2018/06/04 Python
Python 实现文件打包、上传与校验的方法
2019/02/13 Python
深入了解Django View(视图系统)
2019/07/23 Python
Python操作SQLite数据库过程解析
2019/09/02 Python
python实现矩阵和array数组之间的转换
2019/11/29 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
2021/02/26 Python
Engel & Bengel官网:婴儿推车、儿童房家具和婴儿设备
2019/12/28 全球购物
毕业自我鉴定范文
2013/11/06 职场文书
党校毕业心得体会
2014/09/13 职场文书
十八大标语口号
2014/10/09 职场文书
python装饰器代码解析
2022/03/23 Python