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实现对PPT文件进行截图操作的方法
Apr 28 Python
Python实现自动添加脚本头信息的示例代码
Sep 02 Python
利用信号如何监控Django模型对象字段值的变化详解
Nov 27 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
Python爬虫获取整个站点中的所有外部链接代码示例
Dec 26 Python
python字符串和常用数据结构知识总结
May 21 Python
使用python分析统计自己微信朋友的信息
Jul 19 Python
安装docker-compose的两种最简方法
Jul 30 Python
Python facenet进行人脸识别测试过程解析
Aug 16 Python
python基于三阶贝塞尔曲线的数据平滑算法
Dec 27 Python
分享一个python的aes加密代码
Dec 22 Python
利用Python批量识别电子账单数据的方法
Feb 08 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 面向对象实现代码
2009/11/11 PHP
php 去除html标记--strip_tags与htmlspecialchars的区别详解
2013/06/26 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
php数组删除元素示例
2014/03/21 PHP
destoon实现不同会员组公司名称显示不同的颜色的方法
2014/08/22 PHP
ThinkPHP有变量的where条件分页实例
2014/11/03 PHP
php强制运行广告的方法
2014/12/01 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
PHP中数组转换为SimpleXML教程
2019/01/27 PHP
javascript中length属性的探索
2011/07/31 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
jQueryUI DatePicker 添加时分秒
2016/06/04 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
jQuery超简单遮罩层实现方法示例
2018/09/06 jQuery
Vuex中的State使用介绍
2019/01/19 Javascript
Moment.js实现多个同时倒计时
2019/08/26 Javascript
python中对list去重的多种方法
2014/09/18 Python
python实现ID3决策树算法
2017/12/20 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
Python中return self的用法详解
2018/07/27 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
Python中itertools的用法详解
2020/02/07 Python
Python短信轰炸的代码
2020/03/25 Python
Python 如何对文件目录操作
2020/07/10 Python
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
求职简历中个人的自我评价
2013/12/25 职场文书
民主生活会对照检查材料
2014/09/22 职场文书
个人工作保证书
2015/02/28 职场文书
观看焦裕禄观后感
2015/06/09 职场文书
2015中秋节晚会开场白
2015/07/30 职场文书
MySQL的join buffer原理
2021/04/29 MySQL
python字符串常规操作大全
2021/05/02 Python
.Net Core导入千万级数据至Mysql的步骤
2021/05/24 MySQL
Python pyecharts绘制条形图详解
2022/04/02 Python
python语言中pandas字符串分割str.split()函数
2022/08/05 Python