2010 求後序遍歷

2021-09-07 10:13:11 字數 1175 閱讀 9466

時間限制: 1 s

空間限制: 64000 kb

題目等級 : ** silver

description

輸入一棵二叉樹的先序和中序遍歷序列,輸出其後序遍歷序列。

輸入描述

input description

共兩行,第一行乙個字串,表示樹的先序遍歷,第二行乙個字串,表示樹的中序遍歷。

輸出描述

output description

僅一行,表示樹的後序遍歷序列。

樣例輸入

sample input

abdehicfg

dbheiafcg

樣例輸出

sample output

dhiebfgca

資料範圍及提示

data size & hint

輸入長度不大於255。

分類標籤 tags 點此展開

1 #include2 #include3 #include4

using

namespace

std;

5string

s1,s2;

6void calc(int l1,int r1,int l2,int

r2)7

15int

main()

1621

//前序遍歷的每個分塊的第乙個值為根節點,我從中序遍歷裡找到其相應位置,

22//

之前即為左子樹的範圍,之後為右子樹的範圍

23//

if (k > l2) solve(l1+1,l1+k-l2,l2,k-1);

24//

判斷條件是當找到了最底層的節點的時候就不做了(此時k=l2)

25//

l1+1:下乙個左子樹最開頭的節點的位置,l1-k+l2:通過中序遍歷求出左子樹的範圍進而找到左子樹最後乙個節點的位置

26//

if (k < r2) solve(l1+k-l2+1,r1,k+1,r2);

27//

l1+k-l2+1:緊接著右子樹第乙個節點也就是根節點的位置(l1+k-l2是左子樹最後乙個節點的位置,加一即為右子樹第乙個節點)

28//

cout << first[l1];

//因為求後序遍歷所以遞迴呼叫最後才輸出根節點的值

Code vs 2010 求後序遍歷

輸入一棵二叉樹的先序和中序遍歷序列,輸出其後序遍歷序列。前序遍歷 根節點 左子樹前序遍歷 右子樹前序遍歷。中序遍歷 左子樹中序遍歷 根節點 右子樹中序遍歷。只需先在前序遍歷中找出根節點,再在中序遍歷中找出左右子樹的節點列表,再遞迴以上步驟輸出即可。include include include in...

codevs 2010 求後序遍歷x

題目描述 description 輸入一棵二叉樹的先序和中序遍歷序列,輸出其後序遍歷序列。輸入描述 input description 共兩行,第一行乙個字串,表示樹的先序遍歷,第二行乙個字串,表示樹的中序遍歷。輸出描述 output description 僅一行,表示樹的後序遍歷序列。樣例輸入 ...

求後序遍歷

給出一棵二叉樹的前序和中序遍歷,求它的後序遍歷。樹結點用不同的大寫字母表示,長度小於等於26。input 本問題有多組測試資料,每組測試資料有兩行,每行都是由大寫字母組成,分別表示一顆二叉樹的前序和中序遍歷。output 根據給定的前序和中序遍歷,輸出相應的後序遍歷。sample input abc...