在進行文法分析的時候,通常需要檢測乙個單詞是否在我們的單詞列表裡。為了提高查詢和定位的速度,通常都畫出與單詞列表所對應的單詞查詢樹,其特點如下:
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 層所有的結點都連續集中在最左邊,這就是完全二叉樹。它或者是一顆空樹,或...