這道題也當做二叉搜尋樹的建樹模板。
這道題其實直接把這顆樹建出來後,比較前序序列和中序序列即可,這裡我用的陣列實現,更好寫和查錯qwq。
code:
#include using namespace std;
int n , len;
string a , b , c;
char tree[400040] , pd[400040] , st[400040];
void t_insert(int i , char x)
if(tree[i] > x) t_insert(2 * i , x); //小左大右
else t_insert(2 * i + 1 , x);
}void p_insert(int i , char x)
if(pd[i] > x) p_insert(2 * i , x);
else p_insert(2 * i + 1 , x);
}void t_print(int i , int f)
void p_print(int i , int f)
int main()
c = "";
p_print(1 , 1);
if(b != c)
cout << "yes" << endl;
} }return 0;
}
演算法筆記 問題 B 二叉搜尋樹
題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩...
《演算法筆記》9 4 二叉查詢樹
一.定義 1.二叉查詢樹可以是一棵空樹 2.左子樹所有結點的資料域均小於等於根結點,右子樹所有結點的資料域均大於等於根結點 二.基本操作 1.查詢操作 void search node root,int x if x root data printf d n root id else if x ro...
問題 B 二叉搜尋樹
題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩...