P1030 求先序排列 STL,二叉樹遍歷

2021-10-09 23:55:30 字數 733 閱讀 8069

給出一棵二叉樹的中序與後序排列。求出它的先序排列。(約定樹結點用不同的大寫字母表示,長度\le 8≤8)。

22行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。

11行,表示一棵二叉樹的先序。

輸入 #1複製

badc

bdca

輸出 #1複製

abcd
題解:二叉樹的遍歷分別如下:

前序 :根 - 左 - 右

中序:左 - 根 - 右

後序:左 - 右 - 根

現在已經知道了後序和中序,想輸出前序,對於後序來說,每次最後乙個就是根,直接輸出就得到了整棵樹的根,然後左右子樹分別遞迴,遞迴的時候就需要靠中序將兩部分分開。然後同樣的方式處理左右子樹。

這裡的左右遞迴沒有去建立二叉樹,通過stl可以直接查詢進行遞迴。

**思路來自洛谷題解。

#include using namespace std;

void solve(string a, string b) // a 是中序,b 是後序

}int main()

P1030 求先序排列

給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 2行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。1行,表示一棵二叉樹的先序。badc bdca abcd 一棵樹的後序遍歷中的最後一位就是根結點,而中序遍歷中根結點的左右兩邊就是左右子樹上的結點...

P1030 求先序排列

給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 輸入格式 2行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。輸出格式 1行,表示一棵二叉樹的先序。輸入樣例 1 複製badc bdca includeusing namespace std str...

P1030 求先序排列

給出一棵二叉樹的中序與後序排列。求出它的先序排列。約定樹結點用不同的大寫字母表示,長度 8 輸入格式 2行,均為大寫字母組成的字串,表示一棵二叉樹的中序與後序排列。輸出格式 1行,表示一棵二叉樹的先序。輸入樣例 1 複製badc bdca 輸出樣例 1 複製abcd 思路 後序遍歷的最後乙個元素必定...