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登录好友QQ空间点赞的示例代码
Nov 04 Python
利用python将图片转换成excel文档格式
Dec 30 Python
Python3爬虫学习入门教程
Dec 11 Python
对python周期性定时器的示例详解
Feb 19 Python
Python for循环与range函数的使用详解
Mar 23 Python
Python如何处理大数据?3个技巧效率提升攻略(推荐)
Apr 15 Python
Python 实现向word(docx)中输出
Feb 13 Python
python 的topk算法实例
Apr 02 Python
DjangoWeb使用Datatable进行后端分页的实现
May 18 Python
Python中关于logging模块的学习笔记
Jun 03 Python
Python如何进行时间处理
Aug 06 Python
Pytest allure 命令行参数的使用
Apr 18 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
利用Homestead快速运行一个Laravel项目的方法详解
2017/11/14 PHP
PHP 命名空间和自动加载原理与用法实例分析
2020/04/29 PHP
js有序数组的连接问题
2013/10/01 Javascript
jquery 获取 outerHtml 包含当前节点本身的代码
2014/10/30 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
在JavaScript的正则表达式中使用exec()方法
2015/06/16 Javascript
Java中Timer的用法详解
2015/10/21 Javascript
使用javaScript动态加载Js文件和Css文件
2015/10/24 Javascript
js实现的二分查找算法实例
2016/01/21 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
实例讲解JavaScript中的this指向错误解决方法
2016/06/13 Javascript
jQuery ready()和onload的加载耗时分析
2016/09/08 Javascript
Javascript 制作图形验证码实例详解
2016/12/22 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
AngularJs 终极购物车(实例讲解)
2017/11/08 Javascript
详解如何将 Vue-cli 改造成支持多页面的 history 模式
2017/11/20 Javascript
使用nodejs+express实现简单的文件上传功能
2017/12/27 NodeJs
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
详解JS转换数值函数Number()、parseInt()、parseFloat()
2018/08/24 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
websocket4.0+typescript 实现热更新的方法
2019/08/14 Javascript
vue操作dom元素的3种方法示例
2020/09/20 Javascript
从表单校验看JavaScript策略模式的使用详解
2020/10/17 Javascript
python中threading超线程用法实例分析
2015/05/16 Python
Python实现计算字符串中出现次数最多的字符示例
2019/01/21 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
Python开发之基于模板匹配的信用卡数字识别功能
2020/01/13 Python
Css3+Js制作漂亮时钟(附源码)
2013/04/24 HTML / CSS
Tommy Hilfiger澳洲官网:美国高端休闲领导品牌
2020/12/16 全球购物
员工自我鉴定范文
2013/10/06 职场文书
《守株待兔》教学反思
2014/03/01 职场文书
缅怀先烈主题班会
2015/08/14 职场文书
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL
《艾尔登法环》Boss腐烂树灵很有可能是《黑暗之魂3》的一个废案
2022/04/11 其他游戏
SpringBoot集成MongoDB实现文件上传的步骤
2022/04/18 MongoDB