小記
花了好長時間,這道題主要是考二叉樹的後序遍歷,是個模板,但是不同於一般的根據陣列插入數字構造二叉樹,本題中的二叉樹結點資料是字元,並且是根據字串算出來了。
postorder()函式就是原版的後序遍歷函式不需要修改的,不同的是newnode()需要稍加修改,通過呼叫函式tp()來計算當前節點的data;最開始tp函式寫錯了以至於雖然能得到序列但序列的值不對。
create()函式修改比較大,直接遞迴呼叫create()進行二叉樹的構造,遞迴掌握的還是不太好,花了好一陣功夫才寫好create().
最大的失誤在讀入資料的時候,其實這裡的n是沒必要的,我最開始讀入n後,n=pow(2,n); 然後在迴圈讀入a[i] ;因為先是在牛客網的editor上直接寫然後測試的,也不知道哪個編譯器什麼鬼,這樣居然能執行處結果來,直接誤導了我。後來在dev上測試的時候才發現這個問題,改為讀入字串然後進行轉換才ac了。
真是寫**1小時,改bug1小時不止┭┮﹏┭┮
using
namespace std;
#include
int a[
1030];
struct node
;chartp(
int left,
int right)
if(flag1 ==
1&& flag2 ==0)
return
'b';
else
if(flag1 ==
0&& flag2 ==1)
return
'i';
else
if(flag1 ==
1&& flag2 ==1)
return
'f';
}node*
newnode
(int left,
int right)
node*
create
(int left,
int right)
else
return
newnode
(left,right);}
void
postorder
(node *root)
intmain()
node *root=
null
; root=
create(1
,n);
postorder
(root)
;return0;
}
FBI字串 二叉樹
問題描述 bracket pair colorizer 我們可以把由 0 和 1 組成的字串分為三類 全 0 串稱為b串,全 1 串稱為i串,既含 0 又含 1 的串則稱為f串。fbi樹是一種二叉樹,它的結點型別也包括f結點,b結點和i結點三種。由乙個長度為2n的 01 串s可以構造出一棵fbi樹t...
FBI樹(二叉樹的遍歷)
題目描述 我們可以把由 0 和 1 組成的字串分為三類 全 0 串稱為b串,全 1 串稱為i串,既含 0 又含 1 的串則稱為f串。fbi樹是一種二叉樹 1 它的結點型別也包括f結點,b結點和i結點三種。由乙個長度為2n的 01 串s可以構造出一棵fbi樹t,遞迴的構造方法如下 t的根結點為r,其型...
FBI樹 資料結構 二叉樹
時間限制 1 sec 記憶體限制 125 mb 提交 57 解決 46 我們可以把由 0 和 1 組成的字串分為三類 全 0 串稱為b串,全 1 串稱為i串,既含 0 又含 1 的串則稱為f串。fbi樹是一種二叉樹 如下圖 它的結點型別也包括f結點,b結點和i結點三種。由乙個長度為2n的 01 串s...