Python实现输入二叉树的先序和中序遍历,再输出后序遍历操作示例
作者:稀里糊涂林老冷 时间:2023-04-20 15:10:44
本文实例讲述了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程序设计有所帮助。
来源:http://www.cnblogs.com/Lin-Yi/p/7355422.html
标签:Python,二叉树
0
投稿
猜你喜欢
python中upper是做什么用的
2023-10-30 15:53:29
解决 myJSFrame 框架中 Ajax 方法一处明显的内存泄露
2008-03-09 19:14:00
模型训练时GPU利用率太低的原因及解决
2021-02-05 22:22:07
非常全面的Python常见基础面试题及答案
2022-11-14 17:03:33
Mysql字符串截取函数SUBSTRING的用法说明
2024-01-24 14:53:51
Javascript浅拷贝与深拷贝实现
2013-07-16 22:47:46
去掉前面的0的sql语句(前导零,零前缀)
2024-01-25 22:25:23
Python的Flask框架及Nginx实现静态文件访问限制功能
2023-08-13 03:13:38
JavaScript实现九宫格抽奖
2024-04-16 09:32:06
GoLang切片并发安全解决方案详解
2024-05-09 09:54:15
Python自定义scrapy中间模块避免重复采集的方法
2022-02-19 13:32:44
MSSQL中部分字段重复数据的删除方法
2008-12-29 13:59:00
Django项目连接MongoDB的三种方法
2022-05-27 05:23:43
基于Python编写一个中秋节嫦娥投食小游戏
2022-12-27 10:46:34
利用C#远程存取Access数据库
2024-01-27 01:58:32
详解Python中break语句的用法
2021-12-21 22:18:17
Spring Boot Mysql 数据库操作示例
2024-01-19 10:22:28
关于Python中的编码规范
2021-11-07 02:38:02
教女朋友学Python3(二)简单的输入输出及内置函数查看 <font color=red>原创</font>
2022-11-14 08:32:18
Django模板语言 Tags使用详解
2022-09-27 23:37:35