又稱單詞查詢樹,
trie樹
,是一種
樹形結構
,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的
字串(但不僅限於字串),所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是:利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比
雜湊樹高。
根節點不包含字元,除根節點外每乙個節點都只包含乙個字元; 從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字串; 每個節點的所有子節點包含的字元都不相同。
例題:hdu——1251統計難題
void create(char s)//插入過程
//將乙個串加入到trie樹中,對於乙個單詞,從根開始,沿著單詞
//的各個字母所對應的樹中的節點分支向下走,直到單詞遍歷完。
else
u=ch[u][c];
}}int find(char s)//查詢過程
//查詢指定字首,從根開始,按照單詞的字母順序向下遍歷trie樹
//一旦發現某個節點標記不存在或者單詞遍歷完成而最後的節點未
//標記為紅色,則表示該單詞不存在,若最後的節點標記為紅色表示
//該單詞存在
return isfind;}};
trie trie;
int main()
memset(str,'\0',sizeof(str));
while(scanf("%s",str)!=eof)
return 0;
}
HDU1251統計難題 trie樹
description ignatius最近遇到乙個難題,老師交給他很多單詞 只有小寫字母組成,不會有重複的單詞出現 現在老師要他統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 input 輸入資料的第一部分是一張單詞表,每行乙個單詞,單詞的長度不超過10,它們代表的是老師交給ignati...
hdu 1251 統計難題 (trie樹)
題目 不怎麼寫結構體,這回終於好好複習了下。include include includetypedef struct node trie,node trie為指向自己的指標變數。雖然不知定義上node是何意,但貌似大家都這麼寫 trie root void creat trie p void in...
HDU 1251 統計難題(Trie樹)
有很多單詞 只有小寫字母組成,不會有重複的單詞出現 要統計出以某個字串為字首的單詞數量 單詞本身也是自己的字首 每個單詞長度不會超過10.trie樹的模板題。這個題記憶體把控不好容易mle。經過某乙個節點就記一下插入時經過的次數。那麼最後判斷乙個字首的時候就看字首是否能夠存在。如果存在,答案就是最後...