二叉搜尋樹 HDU 3791

2021-08-09 14:32:00 字數 1150 閱讀 5124

判斷兩序列是否為同一二叉搜尋樹序列

input

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

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

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

output

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

sample input

2567432

543267

576342

0sample output

yesno

**一:

#include#include#includeusing namespace std;

struct node

};char res[12],a[12],b[12];

node * root;

int t;

node *build(node *p,char v) //建樹

if(v < p->val)

p->left=build(p->left,v);

else

p->right=build(p->right,v);

return p;

}void pre(node *p,char *c) //先序遍歷

int main()

{ int n;

while(~scanf("%d",&n) && n)

{scanf("%s",res);

root=new node();

root->val=res[0];

for(int i=1; ival=res[0];

for(int i=1; i

**二:

#include#include#define n 1000

int a[n],b[n];

char res[10];

void buildtree(int v,int *t)

{ int pos=1;

while(t[pos]!=-1)

{if(t[pos]

hdu3791二叉搜尋樹

hdu3791二叉搜尋樹 又是二叉搜尋樹的前序遍歷。1.建樹會順序影響整棵樹的形狀 2.記得釋放資源 3.可以用雙重指標和引用優化程式。某些printf 是之前設定的斷點,可以無視之 includeusing namespace std struct bst root bst insert bst ...

hdu 3791 二叉搜尋樹

problem description 判斷兩序列是否為同一二叉搜尋樹序列 input 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每...

HDU 3791 二叉搜尋樹

problem description 判斷兩序列是否為同一二叉搜尋樹序列 input 開始乙個數n,1 n 20 表示有n個需要判斷,n 0 的時候輸入結束。接下去一行是乙個序列,序列長度小於10,包含 0 9 的數字,沒有重複數字,根據這個序列可以構造出一顆二叉搜尋樹。接下去的n行有n個序列,每...