題目描述:判斷兩序列是否為同一二叉搜尋樹序列
輸入:開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。
接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。
接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。
輸出:如果序列相同則輸出yes,否則輸出no
樣例輸入:
2567432
543267
576342
0
樣例輸出:
yesno
題目大意:判斷兩個序列是否屬於同一棵二叉搜尋樹。方法是 根據這個序列構造出這棵二叉搜尋樹,然後根據先序遍歷是否相同即可。注意這裡不能用中序遍歷 來判斷,因為二叉排序樹的中序遍歷是相同的。
#include #include using namespace std;
typedef struct nodenode,*bst;
bool insertbst(node *&t,int element)
if(t->key > element)
else
}void createbst(node *&t,int a,int n)
}int main(){
int n;
while(cin>>n){
if(n == 0)
break;
string str;
cin>>str;
bst tree;
int a[10];
for(int i=0;i>test_example;
for(int i=0;i
九度OJ 1009 二叉搜尋樹
本題演算法的基本思路如下 對源序列建樹。對目標序列建樹。將isequ標誌置true。對源序列與目標序列分別先序遍歷,並引入兩個棧結構在遞迴遍歷時不斷壓入各自的遍歷序列。對兩個棧進行比對,若出現不同則isequ false。使用相同的方法得到兩個中序遍歷序列並比對。輸出結果。有如下收穫 判斷兩棵二叉樹...
九度OJ 題目1009 二叉搜尋樹
題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這...
題目1009 二叉搜尋樹
題目1009 二叉搜尋樹 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 7634 解決 3374 題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒...