題目1009:二叉搜尋樹
時間限制:1 秒
記憶體限制:32 兆
特殊判題:否
提交:7634
解決:3374
題目描述:判斷兩序列是否為同一二叉搜尋樹序列
輸入:開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。
接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。
接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。
輸出:如果序列相同則輸出yes,否則輸出no
樣例輸入:
2567432
543267
576342
0
樣例輸出:
yesno
#include #include#include
using
namespace
std;
struct
node
tree[
110];
intloc;
node *create()
char str1[25],str2[25];//
儲存前序和中序遍歷結果
int size1,size2;//
儲存在字元陣列中的遍歷得到的字元個數
char *str;//
當前正在儲存字串
int *size;//
正在儲存字串中字元個數
void postorder(node *t)//
前序遍歷
void inorder(node *t)//
中序遍歷
node *insert(node *t,int
x)
else
if(xc)
else
if(x>t->c)
returnt;}
intmain()
size1=0;//
儲存在第乙個字串中的字元初始化為0;
str =str1;//
正在儲存的字串設定為第乙個字串
size=&size1;
postorder(t);
inorder(t);
str1[size1]=0;//
向第乙個字串的最後乙個字元後加空字元,方便使用字串函式
while(n--!=0
)
size2=0
; str=str2;
size=&size2;
postorder(t2);
inorder(t2);
str2[size2]=0
; puts(strcmp(str1,str2)==0 ?"
yes":"no"
); }
}return0;
}
題目1009 二叉搜尋樹
輸入乙個整數n,再給你乙個序列s讓你生成乙個二叉排序樹,接下來輸入n個序列,判斷這n個序列生成的二叉排序樹是否和序列s生成的二叉排序樹相同。這道題的思路是這樣,我們首先應該根據給定序列建乙個二叉排序樹,判斷兩顆樹相同的條件是它們的前序序列和中序序列 後序序列和中序序列相等。下面是此題的 includ...
36 題目1009 二叉搜尋樹
題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這...
九度OJ 題目1009 二叉搜尋樹
題目描述 判斷兩序列是否為同一二叉搜尋樹序列 輸入 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這...