FBI樹 二叉樹的簡單建立與運用

2021-05-07 22:32:20 字數 636 閱讀 1958

描述

我們可以把由「0」和「1」組成的字串分為三類:全「0」串稱為b串,全「1」串稱為i串,既含「0」又含「1」的串則稱為f串。

fbi樹是一種二叉樹1,它的結點型別也包括f結點,b結點和i結點三種。由乙個長度為2^n的「01」串s可以構造出一棵fbi樹t,遞迴的構造方法如下:

1) t的根結點為r,其型別與串s的型別相同;

2) 若串s的長度大於1,將串s從中間分開,分為等長的左右子串s1和s2;由左子串s1構造r的左子樹t1,由右子串s2構造r的右子樹t2。

現在給定乙個長度為2^n的「01」串,請用上述構造方法構造出一棵fbi樹,並輸出它的後序遍歷2序列。

輸入格式

輸入的第一行是乙個整數n(0<=n<=10),第二行是乙個長度為2^n的「01」串。

輸出格式

輸出包括一行,這一行只包含乙個字串,即fbi樹的後序遍歷序列。

樣例輸入

樣例輸出

主串的長度為2^n,逐層遞減,是一種二分結構,由於要儲存節點以便後序遍歷,使用二叉樹結構,共需要使用2^( n + 1 )個節點,樹的高度為lgn。

這道題中,可以使用最後一層的節點來儲存2^n個值,則他們的父親節點的字元值就已經有左右兒子的'b','i'決定了,故不用儲存串,只需

要記錄字元值。

FBI樹 字元二叉樹

小記 花了好長時間,這道題主要是考二叉樹的後序遍歷,是個模板,但是不同於一般的根據陣列插入數字構造二叉樹,本題中的二叉樹結點資料是字元,並且是根據字串算出來了。postorder 函式就是原版的後序遍歷函式不需要修改的,不同的是newnode 需要稍加修改,通過呼叫函式tp 來計算當前節點的data...

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