HDU 3791 二叉搜尋樹(模擬BST)

2021-10-24 09:45:32 字數 1479 閱讀 6729

題目鏈結

problem description

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

input

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

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

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

output

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

sample input2

567432

543267

576342

0sample output

yesno

在二叉搜尋樹中:

1.若任意結點的左子樹不空,則左子樹上所有結點的值均不大於它的根結點的值。

2. 若任意結點的右子樹不空,則右子樹上所有結點的值均不小於它的根結點的值。

那麼我們就可以先將第乙個序列建一顆二叉搜尋樹,然後後面n行再重新建一顆,然後去比較兩者的先序遍歷是否相同就可以了。

#include

#include

#include

#include

using

namespace std;

const

int maxn=25;

int a[maxn]

;int b[maxn]

;int pre1[

1005

],pre2[

1005];

char s1[maxn]

;char s2[maxn]

;int k,k1;

struct node

;void

add(node *

&root,

int&t)

else

}void

preorder

(node *root)

}void

preo

(node *root)

}void

remove

(node *root)

intmain()

k=0;

preorder

(root)

;for

(int i=

1;i<=n;i++

)preo

(root1)

;int flag=1;

for(

int i=

0;iif(flag)cout<<

"yes"

"no"

<}

道阻且長

自己選的路 跪著也要走完

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個序列,每...