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)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(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)文章
在Python中采集Prometheus數(shù)據(jù)的詳細(xì)用法教程
Prometheus是一個(gè)開(kāi)源的監(jiān)控和警報(bào)工具,專門用于記錄和查詢時(shí)間序列數(shù)據(jù),它提供了一個(gè)強(qiáng)大的查詢語(yǔ)言PromQL(Prometheus Query Language),允許用戶根據(jù)不同的標(biāo)簽和指標(biāo)選擇特定的時(shí)間序列數(shù)據(jù),本文將詳細(xì)介紹如何在Python中采集Prometheus數(shù)據(jù)2024-07-07
Python實(shí)現(xiàn)修改圖片分辨率(附代碼)
這篇文章主要介紹了Python通過(guò)ffmpeg實(shí)現(xiàn)修改圖片分辨率,文中的代碼介紹詳細(xì),對(duì)我們的工作或?qū)W習(xí)有一定的價(jià)值,感興趣的小伙伴可以學(xué)習(xí)一下2021-12-12
簡(jiǎn)單介紹Python的輕便web框架Bottle
這篇文章主要介紹了Python的輕便web框架Bottle,因其注重輕便的設(shè)計(jì),與Flask一樣,Bottle框架的人氣同樣也非常高,需要的朋友可以參考下2015-04-04
python利用logging模塊實(shí)現(xiàn)根據(jù)日志級(jí)別打印不同顏色日志的代碼案例
這篇文章主要介紹了python利用logging模塊實(shí)現(xiàn)根據(jù)日志級(jí)別打印不同顏色日志,本文通過(guò)實(shí)例代碼給大家詳細(xì)講解,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-12-12

