時空限制 1000ms/128mb
由於先序、中序和後序序列中的任乙個都不能唯一確定一棵二叉樹,所以對二叉樹做如下處理,將二叉樹的空結點用·補齊,如圖所示。我們把這樣處理後的二叉樹稱為原二叉樹的擴充套件二叉樹,擴充套件二叉樹的先序和後序序列能唯一確定其二叉樹。
現給出擴充套件二叉樹的先序序列,要求輸出其中序和後序序列。
一行字串為擴充套件二叉樹的先序序列,第個結點用乙個字元表示。
兩行,第一行為原二叉樹的中序序列,第二行為原二叉樹的後序序列。
abd..ef..g..c..
dbfegac
dfgebca
注意:雖然題中二叉樹結點不多(只有哪麼多單一字元),但並沒有說明二叉樹的深度,因此不能用一維陣列順序儲存建樹,用靜態二叉鍊錶儲存。
#include#includeusing namespace std;
struct node;
string s;
int i=-1;
node *create()
return root;
}void midord(node *root)
}void lastord(node *root)
}int main()
Codeup二叉查詢樹 二叉搜尋樹
判斷兩序列是否為同一二叉搜尋樹序列 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組...
Codeup二叉查詢樹 二叉排序樹
輸入一系列整數,建立二叉排序數,並進行前序,中序,後序遍歷。輸入第一行包括乙個整數n 1 n 100 接下來的一行包括n個整數。可能有多組測試資料,對於每組資料,將題目所給資料建立乙個二叉排序樹,並對二叉排序樹進行前序 中序和後序遍歷。每種遍歷結果輸出一行。每行最後乙個資料之後有乙個空格。12 2 ...
擴充套件二叉樹
由於先序 中序和後序序列中的任乙個都不能唯一確定一棵二叉樹,所以對二叉樹做如下處理,將二叉樹的空結點用 補齊,我們把這樣處理後的二叉樹稱為原二叉樹的擴充套件二叉樹,擴充套件二叉樹的先序和後序序列能唯一確定其二叉樹。現給出擴充套件二叉樹的先序序列,要求輸出其中序和後序序列。輸入有多組資料,對於每組資料...