型別:二叉搜尋樹
題目:給定乙個序列,構造乙個二叉搜尋樹,然後對給定的其他序列和第乙個序列相比,判斷兩個序列是否能組成同一顆二叉搜尋樹
按照第乙個序列先構造一棵二叉搜尋樹,然後對其他序列,同樣構造一棵二叉搜尋樹,如果兩棵樹相同,則其先序和後序序列相同,可以根據兩棵樹的先序和後序序列判斷結果
// hdoj 3791 二叉搜尋樹
// tle wa wa wa ac
#include #include #include using namespace std;
#define for(i,a,b) for(i = (a); i < (b); ++i)
#define fore(i,a,b) for(i = (a); i <= (b); ++i)
const int maxn = 20;
struct node ;
node *t1, *t2;
int len, n;
char first[maxn], last[maxn], first1[maxn], last1[maxn];
string s0, s1;
void xianxu(node *t)
void houxu(node *t)
void insertbst(node* &t, char key)
if(key < t->key)
insertbst(t->lchild, key);
else
insertbst(t->rchild, key);
}void solve()
}}int main()/*1
112123
123123
5123
321132
213312
123*/
hdu3791二叉搜尋樹
hdu3791二叉搜尋樹 又是二叉搜尋樹的前序遍歷。1.建樹會順序影響整棵樹的形狀 2.記得釋放資源 3.可以用雙重指標和引用優化程式。某些printf 是之前設定的斷點,可以無視之 includeusing namespace std struct bst root bst insert bst ...
hdu 3791 二叉搜尋樹
problem description 判斷兩序列是否為同一二叉搜尋樹序列 input 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每...
HDU 3791 二叉搜尋樹
problem description 判斷兩序列是否為同一二叉搜尋樹序列 input 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每...