已知中序和后序遍歷,畫二叉樹和寫出前序遍歷


例題:
已知中序遍歷是: HDMIBJNEAFKCG。后續遍歷是HMIDNJEBKFGCA.畫出二叉樹並寫前序遍歷
step 1:
從后序遍歷知道,最后一個必然是根節點,因此A是根。再結合中序遍歷可知HDMIBJNE是A的左子樹部分,FKCG是右子樹部分。

step 2:
取A的右子樹部分來看先,右子樹部分的中序遍歷:FKCE,后序遍歷:KFGC。接着從后序遍歷中看A的右子樹部分KFGC,所以C是根。又從中序遍歷知,FK是C的左子樹部分,G是C右子樹。如圖所示

step 3:
使用同樣的方法,C的左子樹部分,中序:FK,后序:KF。可以得出F是根,那么K只能是F的右子樹了。此時如圖所示,A的右子樹部分都出來了

step 4:
再看,A的左子樹部分HDMIBJE,中序:HDMIBJNE,后序:HMIDNJEB。后序遍歷可知,B是根結點,那么再結合中序遍歷可知道HDMI是B的左子樹部分,JNE是B的右子樹部分。

step 5:
緊接着就是看B的左子樹部分HDMI,中序:HDMI,后序:HMID,可知D是根,H是D的左子樹,MI是D的右子樹部分,如圖所示。

step 6:
看到D的右子樹部分,中序后序都是MI,根據后序中序的特性可知道,根只能是I,M是I的左子樹。

step 7:
再接着看看B的右子樹部分JNE,中序:JNE,后序:NJE,后序看出E是根,中序看出E無右子樹,只有JN是E的左子樹部分。

step 8:
最后看JN的中序:JN,后序:NJ,根據后序特性看出,J是根,中序看出N是J的右子樹。那么整體的二叉樹就出來了,如圖所示


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM