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 相关文章推荐
Django中URL视图函数的一些高级概念介绍
Jul 20 Python
再谈Python中的字符串与字符编码(推荐)
Dec 14 Python
python中的计时器timeit的使用方法
Oct 20 Python
python脚本作为Windows服务启动代码详解
Feb 11 Python
python如何实现int函数的方法示例
Feb 19 Python
Python Dataframe 指定多列去重、求差集的方法
Jul 10 Python
Python使用Selenium模块实现模拟浏览器抓取淘宝商品美食信息功能示例
Jul 18 Python
python正则表达式之对号入座篇
Jul 24 Python
Python使用post及get方式提交数据的实例
Jan 24 Python
python实现回旋矩阵方式(旋转矩阵)
Dec 04 Python
Python @property原理解析和用法实例
Feb 11 Python
QML用PathView实现轮播图
Jun 03 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实现Mysql读写分离
2013/06/28 PHP
ThinkPHP模板中数组循环实例
2014/10/30 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
2015/03/03 PHP
PHP封装的page分页类定义与用法完整示例
2018/12/24 PHP
取得传值的函数
2006/10/27 Javascript
基于jQuery的Tab选项框效果代码(插件)
2011/03/01 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
javascript中局部变量和全局变量的区别详解
2015/02/27 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
js匿名函数作为函数参数详解
2016/06/01 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
jQuery动态增减行的实例代码解析(推荐)
2016/12/05 Javascript
基于JS实现翻书效果的页面切换样式
2017/02/16 Javascript
微信小程序 跳转传递数据的实例
2017/07/06 Javascript
深入理解ES6之数据解构的用法
2018/01/13 Javascript
vue使用监听实现全选反选功能
2018/07/06 Javascript
vue 解决循环引用组件报错的问题
2018/09/06 Javascript
详解Vscode中使用Eslint终极配置大全
2019/11/08 Javascript
element 中 el-menu 组件的无限极循环思路代码详解
2020/04/26 Javascript
Element Carousel 走马灯的具体实现
2020/07/26 Javascript
深入探究Python中变量的拷贝和作用域问题
2015/05/05 Python
python判断给定的字符串是否是有效日期的方法
2015/05/13 Python
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
编写自定义的Django模板加载器的简单示例
2015/07/21 Python
通过Python实现自动填写调查问卷
2017/09/06 Python
Python实现的多叉树寻找最短路径算法示例
2018/07/30 Python
python买卖股票的最佳时机(基于贪心/蛮力算法)
2019/07/05 Python
Python全栈之列表数据类型详解
2019/10/01 Python
phpquery中文手册
2021/03/18 PHP
你所知道的集合类都有哪些?主要方法?
2012/12/31 面试题
幼儿园五一活动方案
2014/02/07 职场文书
营业员岗位职责
2015/02/11 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
员工辞退通知书
2015/04/17 职场文书
公司2015年终工作总结
2015/05/26 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书