題目1009 二叉搜尋樹

2021-07-22 04:38:15 字數 1680 閱讀 6374

題目1009:二叉搜尋樹

時間限制:1 秒

記憶體限制:32 兆

特殊判題:

提交:7634

解決:3374

題目描述:判斷兩序列是否為同一二叉搜尋樹序列

輸入:開始乙個數n,(1<=n<=20) 表示有n個需要判斷,n= 0 的時候輸入結束。

接下去一行是乙個序列,序列長度小於10,包含(0~9)的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。

接下去的n行有n個序列,每個序列格式跟第乙個序列一樣,請判斷這兩個序列是否能組成同一顆二叉搜尋樹。

輸出:如果序列相同則輸出yes,否則輸出no

樣例輸入:

2

567432

543267

576342

0

樣例輸出:

yes

no

#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個序列,每個序列格式跟第乙個序列一樣,請判斷這...