Trie 樹模板(字典樹,字首樹)

2021-09-26 07:22:55 字數 723 閱讀 9687

主要作用:

詞頻統計:例如,給定乙個由 10 萬個單詞組成的庫,現要你判斷乙個單詞是否有在庫**現,若出現,求出共出現多少次。

字首匹配:給定字串,找出以這個字串開頭的所有單詞。

插入**

const int maxn = 1e5;

int tire[maxn][27];

int book[maxn];

int tot = 1;

void init()

void insert (char *s)

u = tire[u][c];

} book[u] = true; //單詞的結束點

}

尋找字首

bool findpre(char *s) 

u = tire[u][c];

} return true; //掃完該單詞, (假設單詞本身也是自己的字首)

}

找是否出現單詞

bool findworld(char *s) 

u = tire[u][c];

} if(book[u]) //此字母是單詞的結束點

return true;

else

return false;

}

Trie樹,字典樹,字首樹

trie樹,字典樹,字首樹,都是同一顆樹,雜湊樹的變種題目鏈結 常用於文字的詞頻統計 它的特點就是,空間占用小,查詢快 它的儲存方式如下圖所示 對於從樹的根節點走到每乙個黑色節點所經過的路徑,如果將路徑上的字母都連起來的話,就都對應著詞典中的乙個單詞 trie樹,分別有插入,查詢和刪除3種操作,插入...

Trie樹 字典樹 字首樹

trie樹,即字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計和排序大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 最大限度地減少無謂的字串比較,查詢效率比雜湊表高。trie的核心思想是空間換時間。利用字串的公共字首來降低查詢時間的...

Trie樹(字典樹,字首樹)

4.字典樹的應用 5.字典樹的整體 例 hihocoder 1014 trie樹 乙個文字檔案,大約有一萬行,每行乙個詞,要求統計出其中最頻繁出現的前10個詞。對於給定字串,查詢某字典中以該字串開頭的字串的個數。等等 遇到這些問題,如果我們每次都是乙個乙個的統計,遍歷的話,是非常消耗時間的。但是如果...