時間限制: 1 s
空間限制: 128000 kb
題目等級 : 鑽石 diamond
題解檢視執行結果
我們都很熟悉二叉樹的前序、中序、後序遍歷,在資料結構中常提出這樣的問題:已知一棵二叉樹的前序和中序遍歷,求它的後序遍歷,相應的,已知一棵二叉樹的後序遍歷和中序遍歷序列你也能求出它的前序遍歷。然而給定一棵二叉樹的前序和後序,你卻不能確定其中序遍歷序列,考慮如下圖中的幾棵二叉樹:
所有這些二叉樹都有著相同的前序遍歷和後序遍歷,但中序遍歷卻不相同。
輸入描述 input description
輸入檔案共2行,第一行表示該樹的前序遍歷結果,第二行表示該樹的後序遍歷結果。輸入的字符集合為,長度不超過26。
輸出描述 output description
輸出檔案只包含乙個不超過長整型的整數,表示可能的中序遍歷序列的總數。
樣例輸入 sample input
abccba
樣例輸出 sample output
資料範圍及提示 data size & hint
如描述分類標籤 tags 點此展開
動態規劃
深度優先搜尋
遞迴搜尋
/*如果直接求個數,你可以先建立一棵樹,然後尋找即可。
但是這個方法複雜度高,空間高,程式設計長度長。所以不建議使用這種方法
對於樹的基礎概念感覺很多不理解,先序就是先遍歷根,接著左邊,最後右邊,中序中間遍歷根,後序最後遍歷根
這兩個中一定有子串行是相同的
a[i+1]==b[j-1]如果這個成立,相當於有構造乙個新的子樹,會使總方案翻倍(這個話說自己也沒弄清)
答案就是成立的 2^ans
*/#include
#include
using
namespace
std;
char qian[30],hou[30
];int
ans;
intmain()
wikioi 1029 遍歷問題
如果直接求個數,你可以先建立一棵樹,然後尋找即可。但是這個方法複雜度高,空間高,程式設計長度長。所以不建議使用這種方法 對於樹的基礎概念感覺很多不理解,先序就是先遍歷根,接著左邊,最後右邊,中序中間遍歷根,後序最後遍歷根 這兩個中一定有子串行是相同的 a i 1 b j 1 如果這個成立,相當於有構...
CODEVS 1029 遍歷問題
我們都很熟悉二叉樹的前序 中序 後序遍歷,在資料結構中常提出這樣的問題 已知一棵二叉樹的前序和中序遍歷,求它的後序遍歷,相應的,已知一棵二叉樹的後序遍歷和中序遍歷序列你也能求出它的前序遍歷。然而給定一棵二叉樹的前序和後序,你卻不能確定其中序遍歷序列,考慮如下圖中的幾棵二叉樹 所有這些二叉樹都有著相同...
CODEVS 1029 遍歷問題
我們都非常熟悉二叉樹的前序 中序 後序遍歷,在資料結構中常提出這種問題 已知一棵二叉樹的前序和中序遍歷。求它的後序遍歷。對應的,已知一棵二叉樹的後序遍歷和中序遍歷序列你也能求出它的前序遍歷。然而給定一棵二叉樹的前序和後序,你卻不能確定當中序遍歷序列,考慮例如以下圖中的幾棵二叉樹 全部這些二叉樹都有著...