二叉樹的前序、中序、後序遍歷算是比較簡單的,一般知道了中序和前(後)序,即可求後(前)序
輸入:第一行輸入二叉樹的結點數n。解析:我們知道前序是(根節點、左子樹、右子數),中序是(左子樹、根節點、右子數),後序是(左子樹、右子數、根節點)我們可以利用後序的性質,使得在遞迴返回的時候將後序的節點放入陣列中第二行輸入前序的節點編號
第三行輸入中序遍歷的節點編號序列
節點編號為從1至n的整數。請注意,1不一定時根節點
輸出:在一行中輸出按後序遍歷時的節點編號序列。相鄰節點編號之間用1個空格隔開。
限制:1《結點數<<100示例
輸入:
5 1 2 3 4 5
3 2 4 1 5
輸出:
3 4 2 5 1
小結利用stl的性質,充分壓縮了**的量數,同時也使得**可讀性提高了幾個等級。該方法充分利用了前中後序列的性質,也很巧妙的和遞迴結合在了一起,遞是發現問題,歸是解決問題。
已知前序中序,求後序
思路 先序的遍歷規則為根 左 右,中序的遍歷規則為左 根 右,所以我們在中序中找到與a a必為根 相等的字元,則在中序中g d h b為a的左子樹,e i c j f為a的右子樹,在左子樹和右子樹中,重複前面過程,最後逆向將根列印出來,就是其後序。是乙個遞迴過程 include include us...
已知前序和中序求後序與已知中序和後序求前序的演算法
這個問題在面試中很常見,本人就碰到過一次,已經吃過一次虧了。程式說明 已知二叉樹的前序序列和中序序列,寫乙個演算法獲取其後序序列 已知二叉樹的中序和後序序列,求前序序列 程式思路 這是乙個遞迴的過程,先從前序中找根節點,然後通過中序中進行判斷,如果在左,那麼第二個結點就是左結點,如果在右,那麼就是右...
前序中序求後序 後序中序求前序層次 模板
這是資料結構的知識。剛開始先拒絕用指標去寫。當我把這個想法和別人分享是,別人說不喜歡用指標的程式設計師不是乙個好的c c 程式設計師。所以,就有了這麼勵志的時刻,我參考大牛的 自己用指標寫了個遍,直接1a 不用指標總是出現各種想不到的錯誤。心累。orz.include include include...