給予一串數字,利用binary tree 讓他依 INFIX 、PREFIX 、POSTFIX 排列
5031 67 88 2 35 21 48 8 27 49 //the elements ofbinary search tree
INFIX 2 8 21 27 31 35 48 49 50 67 88 //output the infix notation in the output file
PREFIX 50 31 2 21 8 27 34 48 49 67 88 //output the prefix notation in the output file
POSTFIX 8 27 21 2 49 48 35 31 88 67 50 //output the postfix notation in the output file
INSERT //insert the following number into the tree
370 //the numbers need to be inserted
INFIX //…
謝謝~
snowflying 發表於 2013-5-12 07:48 PM
所以是要做什麼和求什麼? Binary Tree? Code?
第一行數字後的 INFIX PREFIX POSTFIX 是給定的?
不然只給一 ...
中序遍歷的規則就是把根放在中間,從左到右。即左——根——右。
以下圖為例:
則是先遍歷左子樹(即以B為根的子樹),再遍歷根結點,最后遍歷右子樹(以E為根結點的子樹)。
首先在遍歷左子樹(以B為根的子樹)的時候,同樣用中序遍歷的規則(左——根——右),此時,我們把左子樹當成一個獨立的樹來看。那麼在這個左子樹里面,遍歷的順序就應該是CBD。(暫且把結果放一邊)
然后遍歷根結點,就是輸出A(根結點就是A嘛!)
最后遍歷右子樹(以E為根的子樹),按照前面第一步的方法,暫且把這個右子樹當成一個獨立的樹來看,遍歷結果應該是EF(因為在這個子樹里,它的左子樹為空)。
最后一步,我們把上面三步的結果順序串聯起來,就可以得到遍歷的結果:CBDAEF
PS:不管哪一種遍歷,只要把各個子樹當成一個“大結點”來看。在各個“大結點”內部又各自依相應的遍歷方式遍歷,最終將結果返回即可得到所要的遍歷結果(呃!不知道會不會說復雜了!總之就是一個遞歸的過程!你要好好体會一下!)
[attach]91055614[/attach]
歡迎光臨 伊莉討論區 (http://a401.file-static.com/) | Powered by Discuz! |