題目描述:判斷兩序列是否為同一二叉搜尋樹序列
輸入:開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。
接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。
接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。
輸出:如果序列相同則輸出yes,否則輸出no
樣例輸入:
2567432
543267
576342
0
樣例輸出:
yesno
用建立二叉排序樹的方法不知道怎麼輸出前序後序,沒法比較;
用靜態陣列的方法,最大的陣列長度有1023,太稀疏了,比如將還每次都要從0開始比較,時間複雜度太高。。。
但是我看到的大神的靜態陣列的做法,演算法和我相同,但是優化了靜態陣列的比較方式,雖然時間複雜度還是比較高。。。。
#include#include#include#include#includeusing namespace std;
void creatbitree(string str, int a)
else if (a[j] < temp) //存到右子樹
j = 2 * j + 1;
else
j = 2 * j;
} }}
int main()
} system("pause");
return 0;
}
題目1009 二叉搜尋樹
題目1009 二叉搜尋樹 時間限制 1 秒 記憶體限制 32 兆 特殊判題 否 提交 7634 解決 3374 題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒...
題目1009 二叉搜尋樹
輸入乙個整數n,再給你乙個序列s讓你生成乙個二叉排序樹,接下來輸入n個序列,判斷這n個序列生成的二叉排序樹是否和序列s生成的二叉排序樹相同。這道題的思路是這樣,我們首先應該根據給定序列建乙個二叉排序樹,判斷兩顆樹相同的條件是它們的前序序列和中序序列 後序序列和中序序列相等。下面是此題的 includ...
3 6二叉搜尋樹
分別存放兩比較輸入的先序 中序序列 int size1,size2 存放字串長 char str 指向正在輸入的字串 int size 計算正在輸入字串長 str,size與str1 str2,size1 size2對應 int loc node creat 遞迴先序遍歷 void preorder...