九度OJ 1009 二叉搜尋樹

2021-07-13 21:10:35 字數 962 閱讀 2633

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

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

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

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

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

樣例輸入:

2

567432

543267

576342

0

樣例輸出:

yes

no

題目大意:判斷兩個序列是否屬於同一棵二叉搜尋樹。方法是 根據這個序列構造出這棵二叉搜尋樹,然後根據先序遍歷是否相同即可。注意這裡不能用中序遍歷 來判斷,因為二叉排序樹的中序遍歷是相同的。

#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 的數字,沒...