Python實現(xiàn)輸入二叉樹的先序和中序遍歷,再輸出后序遍歷操作示例
本文實例講述了Python實現(xiàn)輸入二叉樹的先序和中序遍歷,再輸出后序遍歷操作。分享給大家供大家參考,具體如下:
實現(xiàn)一個功能:
輸入:一顆二叉樹的先序和中序遍歷
輸出:后續(xù)遍歷
思想:
先序遍歷中,第一個元素是樹根
在中序遍歷中找到樹根,左邊的是左子樹 右邊的是右子樹
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相關內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結構與算法教程》、《Python編碼操作技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
Python 3.x 安裝opencv+opencv_contrib的操作方法
下面小編就為大家分享一篇Python 3.x 安裝opencv+opencv_contrib的操作方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
Python 利用Entrez庫篩選下載PubMed文獻摘要的示例
這篇文章主要介紹了Python 利用Entrez庫篩選下載PubMed文獻摘要的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11

