單詞樹(最優二叉樹)

2021-08-09 05:42:58 字數 789 閱讀 7496

在進行文法分析的時候,通常需要檢測乙個單詞是否在我們的單詞列表裡。為了提高查詢和定位的速度,通常都畫出與單詞列表所對應的單詞查詢樹,其特點如下:

1.根結點不包含字母,除根結點外每乙個結點都僅包含乙個大寫英文本母;

2.從根結點到某一結點,路徑上經過的字母依次連起來所構成的字母序列,稱為該結點對應的單詞。單詞列表中的每個單詞,都是該單詞查詢樹某個結點所對應的單詞;

3.在滿足上述條件下,該單詞查詢樹的結點數最少。

注意,對乙個確定的單詞列表,請統計對應的單詞樹的結點數(包含根結點)。

輸入 輸入乙個單詞列表,每一行僅包含乙個單詞和乙個換行回車符。每個單詞僅由大寫的英文本母組成,長度不超過、63個字母 。輸入檔案總長度不超過32k,至少有一行資料。

輸出 輸出乙個整數,該整數為單詞列表對應的單詞查詢樹的結點數。

輸入樣例

copy

a an

asp

as asc

ascii

bas

basic

輸出樣例

copy

13

#include 

using

namespace

std;

int main()

cout

<1;

return

0;}

對所有單詞(字串)排序,s先設為第乙個單詞的長度,然後從第二個單詞開始依次與前乙個單詞進行比較,將該單詞與前乙個單詞不同的後邊一部分的長度加到s上,再加上根結點,最終結果即為需要的結點數。

最優二叉樹

include include includetypedef struct huffmantree typedef char huffmancode 赫夫曼編碼 void selectnode huffmantree ht,int n,int bt1,int bt2 從1 i 1個結點選擇paren...

最優二叉樹

所謂哈夫曼樹即最優二叉樹,其特點是帶權路徑長度最小 建樹原理 將最小數結點放到最下面,大數放到離頂點近的地方,建樹時從下往上建,每上一層下一層的數就被重複加一次,這樣最終得到完整樹 資料結構實驗之二叉樹六 哈夫曼編碼 problem description 字元的編碼方式有多種,除了大家熟悉的asc...

滿二叉樹 完全二叉樹 平衡二叉樹 最優二叉樹

一棵二叉樹的結點要麼是葉子結點,要麼它有兩個子結點 如果乙個二叉樹的層數為k,且結點總數是 2k 12 k 1 2k 1 則它就是滿二叉樹。若設二叉樹的深度為k,除第 k 層外,其它各層 1 k 1 的結點數都達到最大個數,第k 層所有的結點都連續集中在最左邊,這就是完全二叉樹。它或者是一顆空樹,或...