題目連線:
初拿到這個題時,感覺是簡單的題,想要對單詞進行簡單的儲存,並且在比較時,進行遍歷比較,如果資料量很大的話,就需要很長的時間來遍歷。進過網上的搜尋,我知道了還有字典樹的概念,可以對大量的單詞進行雜湊儲存,並且以此儲存後,直接遍歷乙個樹的分支就能得到最終的結果,感覺速度能快很多,只是犧牲了很大的記憶體空間。本**的寫成主要參考**如下:
其內容做以簡單摘錄:
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,它們代表的是老師...