簡約遞迴AC POJ 2255

2021-08-28 15:09:06 字數 631 閱讀 1086

poj-2255是乙個簡單的二叉樹遍歷問題,給出前序遍歷和中序遍歷結果,求出後序遍歷。大體瀏覽了各位大佬們的**,發現用遞迴完成是比較簡單的選擇,但是大佬的**萌新實在看不懂,只好自己來寫乙個了

d

/ \/ \

b e

/ \ \

/ \ \

a c g//

f

這位二叉樹的前序遍歷為dbacegf,中序遍歷為abcdefg。仔細觀察揣摩便可發現前序遍歷的第乙個字元(d)肯定是這個子樹的根,而這個根放到中序遍歷中便可將之分為左子樹和右子樹,這裡abc(左子樹)d(根)efg(右子樹),這樣就可以遞迴解決了,因為所有的問題都可以交給下一層遞迴來解決,我們只需約定遞迴終止條件即可。

而這裡的終止條件就是前序遍歷和中序遍歷都只有相同的乙個字元或均為空。

#include

#include

using namespace std;

void

arrange

(string pre, string in)

}int

main()

return0;

}

遞迴演算法 2

author sunnymoon 概念介紹 遞迴的二分查詢 想用最少的比較次數在乙個有序的陣列中找到乙個給定的資料項。非遞迴的二分查詢 二分查詢也可以用非遞迴的演算法,但是分治演算法通常要回到遞迴。分治算 法常常是乙個方法,在這個方法中含有兩個對自身的遞迴的呼叫。分治演算法 遞迴的二分查詢是分治演算...

程式設計2遞迴

1 波蘭表示式 字首 本身就是乙個遞迴的定義 像樹一樣 所以用遞迴來寫 定義 滿足如下為波蘭表示式 1 輸入形式為乙個數 a 2 輸入形式為 運算子 波蘭表示式 波蘭表示式 include include includeusing namespace std double exp 讀入並計算逆波蘭表...

遞迴 演算法題解2

選擇b 遞迴工作棧裡面包括返回位址 本層的區域性變數和遞迴呼叫的形參代換用實參,所以正常情況下,無論遞迴過程有沒有使用區域性變數,轉換為非 遞迴過程 都需要用棧來模擬這個遞迴呼叫過程。當然,有一些特殊遞迴不用棧就可以直接轉換,比如尾遞迴 常係數遞推等,無論是否有區域性變數 直接排除ad,注意力集中在...