zcmu 4931(前序 中序轉後序遍歷)

2021-08-28 08:11:28 字數 830 閱讀 8406

時間限制: 1 sec  記憶體限制: 32 mb

提交: 16  解決: 10

[提交][狀態][討論版]

兩個字串,其長度n均小於等於26。

第一行為前序遍歷,第二行為中序遍歷。

二叉樹中的結點名稱以大寫字母表示:a,b,c....最多26個結點。

輸入樣例可能有多組,對於每組測試樣例,

輸出一行,為後序遍歷的字串。

abc cba abcdefg dcbaefg

cba dcbgfea

資料結構高分筆記

[提交][狀態][討論版]

心得:找遞迴定義

1、找到前序遍歷s1的頭結點,是根節點;

2、在s2中找到s1的頭結點,並記錄它的位置;

3、在s1中向左找左子樹的根節點,再在s2中找到左子樹的頭結點的位置;

4、在s2中向右找右子樹的根節點,再在s2中找右子樹的頭結點的位置;

(3,4即遞迴在左右子樹中找根節點,當兩個節點間的距離==0時結束)。

#include#include#includeusing namespace std;

struct node;

typedef struct node* bt;

char s1[120],s2[120],s3[120];

int cnt;

bt f(int pre,int mid,int l) //注意l不是字串的長度

void postorder(bt t,char* ss)

int main(void)

return 0;

}

參考文章:

前序中序後序

遍歷情況 前序 根結點 左子樹 右子樹 中序 左子樹 根結點 右子樹 後序 左子樹 右子樹 根結點 例題一 輸入描述 input description 輸入檔案共2行,第一行表示該樹的前序遍歷結果,第二行表示該樹的後序遍歷結果。輸入的字符集合為,長度不超過26。輸出描述 output descri...

層序加中序轉前序和後序

凡是樹,首先要考慮能不能用遞迴的方法來做 比如 層序 1 2 3 4 5 6 7 中序 4 2 5 1 6 3 7 1必定是根節點,在中序中查詢位置,中序中的1將中序分為左右子樹,我們用v1儲存左子樹的節點,然後層序中從第二個節點開始按照層序的順序依次進入v2,v3 v2,v3分別是左子樹和右子樹的...

前序中序求後序 後序中序求前序層次 模板

這是資料結構的知識。剛開始先拒絕用指標去寫。當我把這個想法和別人分享是,別人說不喜歡用指標的程式設計師不是乙個好的c c 程式設計師。所以,就有了這麼勵志的時刻,我參考大牛的 自己用指標寫了個遍,直接1a 不用指標總是出現各種想不到的錯誤。心累。orz.include include include...