我們都很熟悉二叉樹的前序、中序、後序遍歷,在資料結構中常提出這樣的問題:已知一棵二叉樹的前序和中序遍歷,求它的後序遍歷,相應的,已知一棵二叉樹的後序遍歷和中序遍歷序列你也能求出它的前序遍歷。然而給定一棵二叉樹的前序和後序,你卻不能確定其中序遍歷序列,考慮如下圖中的幾棵二叉樹:
所有這些二叉樹都有著相同的前序遍歷和後序遍歷,但中序遍歷卻不相同。
輸入檔案共2行,第一行表示該樹的前序遍歷結果,第二行表示該樹的後序遍歷結果。輸入的字符集合為,長度不超過26。
輸出檔案只包含乙個不超過長整型的整數,表示可能的中序遍歷序列的總數。顯然,中序遍歷的數量一定和只有乙個子節點的節點數目有關。
比如a的唯一子節點是b,那麼先序遍歷中一定是ab,後序遍歷中一定是ba,即相鄰且位置相反。
隨便畫乙個二叉樹觀察即可明白。
那麼,得出的節點數目為n,答案就是2^n。
#include
#include
#include
#include
#include
using namespace std;
const int n = 30;
char a[n], b[n];
int main()
{ cin>>a>>b;
int ans = 1;
int len = strlen(a);
for(int i=1; i
CODEVS 1029 遍歷問題
我們都很熟悉二叉樹的前序 中序 後序遍歷,在資料結構中常提出這樣的問題 已知一棵二叉樹的前序和中序遍歷,求它的後序遍歷,相應的,已知一棵二叉樹的後序遍歷和中序遍歷序列你也能求出它的前序遍歷。然而給定一棵二叉樹的前序和後序,你卻不能確定其中序遍歷序列,考慮如下圖中的幾棵二叉樹 所有這些二叉樹都有著相同...
CODEVS 1029 遍歷問題
我們都非常熟悉二叉樹的前序 中序 後序遍歷,在資料結構中常提出這種問題 已知一棵二叉樹的前序和中序遍歷。求它的後序遍歷。對應的,已知一棵二叉樹的後序遍歷和中序遍歷序列你也能求出它的前序遍歷。然而給定一棵二叉樹的前序和後序,你卻不能確定當中序遍歷序列,考慮例如以下圖中的幾棵二叉樹 全部這些二叉樹都有著...
codevs1029 遍歷問題
codevs1029 遍歷問題 試題描述 我們都很熟悉二叉樹的前序 中序 後序遍歷,在資料結構中常提出這樣的問題 已知一棵二叉樹的前序和中序遍歷,求它的後序遍歷,相應的,已知一棵二叉樹的後序遍歷和中序遍歷序列你也能求出它的前序遍歷。然而給定一棵二叉樹的前序和後序,你卻不能確定其中序遍歷序列,考慮如下...