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进阶教程之函数对象(函数也是对象)
Aug 30 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
Python使用回溯法子集树模板解决迷宫问题示例
Sep 01 Python
Python深度优先算法生成迷宫
Jan 22 Python
python编程嵌套函数实例代码
Feb 11 Python
Python面向对象之继承和多态用法分析
Jun 08 Python
python中的协程深入理解
Jun 10 Python
Python多线程爬取豆瓣影评API接口
Oct 22 Python
安装Pycharm2019以及配置anconda教程的方法步骤
Nov 11 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 Python
python分别打包出32位和64位应用程序
Feb 18 Python
python爬虫判断招聘信息是否存在的实例代码
Nov 20 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
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
PHP获取网址的顶级域名函数代码
2012/09/24 PHP
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
php数组查找函数总结
2014/11/18 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
如何通过PHP实现Des加密算法代码实例
2020/05/09 PHP
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
js多级树形弹出一个小窗口层(非常好用)实例代码
2013/03/19 Javascript
JavaScript_object基础入门(必看篇)
2016/06/13 Javascript
JavaScript简单实现弹出拖拽窗口(一)
2016/06/17 Javascript
深入理解vue-router之keep-alive
2017/08/31 Javascript
JS switch判断 三目运算 while 及 属性操作代码
2017/09/03 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
微信小程序中时间戳和日期的相互转换问题
2018/07/09 Javascript
Layui 设置select下拉框自动选中某项的方法
2018/08/14 Javascript
Vuejs2 + Webpack框架里,模拟下载的实例讲解
2018/09/05 Javascript
vue实现条件判断动态绑定样式的方法
2018/09/29 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
Antd表格滚动 宽度自适应 不换行的实例
2020/10/27 Javascript
Python中使用Boolean操作符做真值测试实例
2015/01/30 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
Python基于identicon库创建类似Github上用的头像功能
2017/09/25 Python
浅谈python3发送post请求参数为空的情况
2018/12/28 Python
Python编程图形库之Pillow使用方法讲解
2018/12/28 Python
python中return的返回和执行实例
2019/12/24 Python
通过Python扫描代码关键字并进行预警的实现方法
2020/05/24 Python
python中的列表和元组区别分析
2020/12/30 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
链表面试题-一个链表的结点结构
2015/05/04 面试题
如何写一份好的自荐信
2014/01/02 职场文书
《诺贝尔》教学反思
2014/02/17 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
2015年禁毒工作总结
2015/04/30 职场文书
2016新年问候语大全
2015/11/11 职场文书
导游词之河姆渡遗址博物馆
2019/10/10 职场文书
HTML+CSS 实现顶部导航栏菜单制作
2021/06/03 HTML / CSS