一開始想到的辦法,對每個序列建立二叉排序樹後先根遍歷看得到的序列是否相同即可。打完後忽然想到,其實既然我用陣列存下了二叉樹,那麼直接比較樹是否完全一樣就可以了的,算了就這樣吧,以後再打……
/** hdu3791/linux.cpp
* created on: 2011-9-6
* author : ben
*/#include
<
cstdio
>
#include
<
cstdlib
>
#include
<
cstring
>
#include
<
cmath
>
#include
<
algorithm
>
using
namespace
std;
typedef
struct
node node;
const
intmax_node
=200
;const
intmaxn =30
;int
ncount;
node tree[max_node];
char
orilist[maxn], newlist[maxn];
intoriindex, newindex;
void
create(node
*proot,
char
num)
if(num
>
proot
->
num)
create(proot
->
pleft, num);
} else
create(proot
->
pright, num);}}
void
getori(node
*proot)
if(proot
->
pright)
}void
getnew(node
*proot)
if(proot
->
pright)
}void
work()
ncount =0
;while
((c
=getchar())
>''
) oriindex =0
;getori(tree);
for(
inti =0
; i
<
n; i
++)
ncount =0
;while
((c
=getchar())
>''
) newindex =0
;getnew(tree);
if(oriindex
!=newindex)
intj =0
;for
(j =
0; j
<
newindex; j
++) }if
(j ==
newindex)
else}}
}int
main()
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個序列,每...