p1030 求先序排列 - 洛谷 | 電腦科學教育新生態
輸入 #1複製
badcbdca
輸出 #1複製
abcd
題目如上,對於這道題,我們可以利用樹的遞迴性質來求解
已知後序序列和中序序列,我們可以逐次找根,輸出根節點的值,再對左右子樹分別來一波,就得到後序遍歷的序列啦
比如樣例資料 中序序列badc 後序序列bdca
後序序列的最後乙個字元'a'就是這段序列裡的根,接著在中序序列中找到'a'
那麼b就是遍歷左子樹的中序序列,dc就是遍歷右子樹的中序序列了
由此我們也得到了左右子樹的結點個數和各自的後序序列,就可以再對倆子樹來一波,就可以了
核心**如下:
void go(string a,string b)//a是後序遍歷序列,b是中序遍歷序列
if(lenr!=0
)
}}
string part(a,0,lenl)表示複製字串a的a[0]到a[0+lenl-1]到part,也就是從0開始數lenl個
洛谷 1030 先序排列
給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 輸入格式 2行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。輸出格式 1行,表示一棵二叉樹的先序。輸入樣例 1 badc bdca 輸出樣例 1 abcd 中序和後序確定前序的規則 後序的最後乙個...
洛谷 P1030 求先序排列
給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度8 8 輸入格式 2行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。輸出格式 1行,表示一棵二叉樹的先序。思路 1.通過後序找根節點 2.通過根節點回中序劃分左右子樹 3.重複1,2 ps 雖然思路蠻清...
洛谷P1030(求先序排列)
給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 2行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。1行,表示一棵二叉樹的先序。這是一道二叉樹的題目,當時老師是布置過這個題目的,但是我當時是用遞迴做的,但是我當時年輕,老師問了一句如果資料量100...