Python實(shí)現(xiàn)輸入二叉樹(shù)的先序和中序遍歷,再輸出后序遍歷操作示例
本文實(shí)例講述了Python實(shí)現(xiàn)輸入二叉樹(shù)的先序和中序遍歷,再輸出后序遍歷操作。分享給大家供大家參考,具體如下:
實(shí)現(xiàn)一個(gè)功能:
輸入:一顆二叉樹(shù)的先序和中序遍歷
輸出:后續(xù)遍歷
思想:
先序遍歷中,第一個(gè)元素是樹(shù)根
在中序遍歷中找到樹(shù)根,左邊的是左子樹(shù) 右邊的是右子樹(shù)
Python代碼:
# -*- coding:utf-8 -*-
def fromFMtoL( mid ):
global las #全局后序遍歷
global fir #先序遍歷
root = fir[0] #取出當(dāng)前樹(shù)根
fir = fir[1:] #取出樹(shù)根后 先序遍歷把根拿出來(lái) 下面一個(gè)元素做樹(shù)根
root_po = mid.find( root ) #在中序遍歷當(dāng)中樹(shù)根的位置
left = mid[0:root_po] #左子樹(shù)
right = mid[root_po+1:len(mid)] #右子樹(shù)
'''
后序遍歷: 左 右 根
先左子樹(shù) 再右子樹(shù) 最后跟
'''
#有左子樹(shù)的時(shí)候
if len(left) > 0:
fromFMtoL( left )
#有右子樹(shù)的時(shí)候
if len(right) > 0:
fromFMtoL( right )
#樹(shù)根寫(xiě)進(jìn)結(jié)果
las += root
if __name__ == "__main__" :
# fir = input("請(qǐng)輸入先序遍歷:") #前序遍歷的結(jié)果
# mid = input("請(qǐng)輸入中序遍歷:") #中序遍歷的結(jié)果
fir = "DBACEGF"
mid = "ABCDEFG"
# fir = "ABC"
# mid = "BAC"
las = ""
fromFMtoL( mid )
print(las)
運(yùn)行結(jié)果:
ACBFGED
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專(zhuān)題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
- python數(shù)據(jù)結(jié)構(gòu)之二叉樹(shù)的遍歷實(shí)例
- Python利用前序和中序遍歷結(jié)果重建二叉樹(shù)的方法
- python二叉樹(shù)遍歷的實(shí)現(xiàn)方法
- Python實(shí)現(xiàn)二叉樹(shù)結(jié)構(gòu)與進(jìn)行二叉樹(shù)遍歷的方法詳解
- python實(shí)現(xiàn)的二叉樹(shù)定義與遍歷算法實(shí)例
- Python編程實(shí)現(xiàn)二叉樹(shù)及七種遍歷方法詳解
- Python實(shí)現(xiàn)二叉樹(shù)的常見(jiàn)遍歷操作總結(jié)【7種方法】
- Python實(shí)現(xiàn)二叉樹(shù)前序、中序、后序及層次遍歷示例代碼
- python先序遍歷二叉樹(shù)問(wèn)題
- python創(chuàng)建與遍歷二叉樹(shù)的方法實(shí)例
相關(guān)文章
PyCM多類(lèi)別混淆矩陣分析python庫(kù)功能使用探究
這篇文章主要為大家介紹了python編寫(xiě)的PyCM多類(lèi)混淆矩陣庫(kù),用于多類(lèi)別混淆矩陣分析,幫助用戶(hù)從不同角度評(píng)價(jià)分類(lèi)模型的表現(xiàn),這些指標(biāo)包括但不限于準(zhǔn)確率、召回率、F1分?jǐn)?shù)、Kappa?統(tǒng)計(jì)量等,支持二分類(lèi)、多分類(lèi)及多標(biāo)簽分類(lèi)問(wèn)題2024-01-01
Python之ReportLab繪制條形碼和二維碼的實(shí)例
下面小編就為大家分享一篇Python之ReportLab繪制條形碼和二維碼的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-01-01
Python 3.x 安裝opencv+opencv_contrib的操作方法
下面小編就為大家分享一篇Python 3.x 安裝opencv+opencv_contrib的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
python實(shí)現(xiàn)爬取千萬(wàn)淘寶商品的方法
這篇文章主要介紹了python實(shí)現(xiàn)爬取千萬(wàn)淘寶商品的方法,涉及Python頁(yè)面抓取的相關(guān)技巧,需要的朋友可以參考下2015-06-06
Python 利用Entrez庫(kù)篩選下載PubMed文獻(xiàn)摘要的示例
這篇文章主要介紹了Python 利用Entrez庫(kù)篩選下載PubMed文獻(xiàn)摘要的示例,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11

