FBI樹 字元二叉樹

2021-10-06 08:21:22 字數 1456 閱讀 2070

小記

花了好長時間,這道題主要是考二叉樹的後序遍歷,是個模板,但是不同於一般的根據陣列插入數字構造二叉樹,本題中的二叉樹結點資料是字元,並且是根據字串算出來了。

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...