杭電1251 統計難題 字典樹的應用

2021-06-05 07:01:52 字數 1079 閱讀 1058

題目連線:

初拿到這個題時,感覺是簡單的題,想要對單詞進行簡單的儲存,並且在比較時,進行遍歷比較,如果資料量很大的話,就需要很長的時間來遍歷。進過網上的搜尋,我知道了還有字典樹的概念,可以對大量的單詞進行雜湊儲存,並且以此儲存後,直接遍歷乙個樹的分支就能得到最終的結果,感覺速度能快很多,只是犧牲了很大的記憶體空間。本**的寫成主要參考**如下:

其內容做以簡單摘錄:

trie,又稱字典樹、單詞查詢樹,是一種樹形結構,用於儲存大量的字串。它的優點是:利用字串的公共字首來節約儲存空間。

相對來說,trie樹是一種比較簡單的資料結構.理解起來比較簡單,正所謂簡單的東西也得付出代價.故trie樹也有它的缺點,trie樹的記憶體消耗非常大.當然,或許用左兒子右兄弟的方法建樹的話,可能會好點.

其基本性質可以歸納為:

1. 根節點不包含字元,除根節點外每乙個節點都只包含乙個字元。 

2. 從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字串。 

3. 每個節點的所有子節點包含的字元都不相同。

搜尋字典專案的方法為:

(1) 從根結點開始一次搜尋;

(4) 迭代過程……

#include #include #include #define max 26

typedef struct _node

node;

static node root = };

void insert(char * word, int len)

else

cur = cur->next[word[i]-'a']; }}

node *find(char * wrd, int len)

else return null;

} return cur;

}int main()

int lenth = strlen(word);

// printf("%d\n",lenth);

insert(word, lenth);

} node *p;

while(gets(word))

return 0;

}

HDU 1251統計難題(字典樹)

經典的字典樹題目。字典樹 又稱單詞查詢樹,trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來節約儲存空間,最大限度地減少無謂的字串比較,查詢效率比雜湊表高。ac code ...

HDU1251統計難題 字典樹

題目 problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的...

hdu 1251 統計難題 字典樹

problem description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師...