l
簡介
trie
,又稱單詞查詢樹、字首樹,是一種雜湊樹的變種。應用於字串的統計與排序,經常被搜尋引擎系統用於文字詞頻統計。
含有單詞「tea
」「tree
」「a」「zsu
」的一棵trie
。
l性質
n根節點不包含字元,除根節點外的每乙個節點都只包含乙個字元。
n從根節點到某一節點,路徑上經過的字元連線起來,為該節點對應的字串。
n每個節點的所有子節點包含的字元都不相同。
l優點
n查詢快。對於長度為m
的鍵值,最壞情況下只需花費o(m)
的時間;而bst
最壞情況下需要o(m log n)
的時間。
n當儲存大量字串時,trie
耗費的空間較少。因為鍵值並非顯式儲存的,而是與其他鍵值共享子串。
ntrie
適用於「最長字首匹配」。
l操作
n初始化或清空
遍歷trie
,刪除所有節點,只保留根節點。
n插入字串
1.
設定當前節點為根節點,設定當前字元為插入字串中的首個字元;
2.
在當前節點的子節點上搜尋當前字元,若存在,則將當前節點設為值為當前字元的子節點;否則新建乙個值為當前字元的子節點,並將當前結點設定為新建立的節點。.
3.
將當前字元設定為串中的下個字元,若當前字元為0,則結束;否則轉2.
n
查詢字串
搜尋過程與插入操作類似,當字元找不到匹配時返回假;若全部字元都存在匹配,判斷最終停留的節點是否為樹葉,若是,則返回真,否則返回假。
n
刪除字串
首先查詢該字串,邊查詢邊將經過的節點壓棧,若找不到,則返回假;否則依次判斷棧頂節點是否為樹葉,若是則刪除該節點,否則返回真。
l實現
對於字元表大小為s的字串集,需建立乙個s叉樹來代表這些字串的集合。
Trie 單詞查詢樹
l 簡介 trie 又稱單詞查詢樹 字首樹,是一種雜湊樹的變種。應用於字串的統計與排序,經常被搜尋引擎系統用於文字詞頻統計。含有單詞 tea tree a zsu 的一棵trie l性質n 根節點不包含字元,除根節點外的每乙個節點都只包含乙個字元。n 從根節點到某一節點,路徑上經過的字元連線起來,為...
Trie樹(單詞查詢樹)
前言 tire樹,又稱之為字典樹或者單詞查詢樹。是一種樹形結構,是雜湊樹的變種。典型應用是用於統計 排序或儲存大量的字串 不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻的統計。因為相同的字串字首會共享同一條分支,所以優點是可以利用不同字串的相同字首來減少無謂的字串比較,查詢效率比hash表 has...
C語言 單詞查詢樹 Trie樹
trie樹,是一種樹形結構,是一種雜湊樹的變種。典型應用是用於統計,排序和儲存大量的字串 但不僅限於字串 所以經常被搜尋引擎系統用於文字詞頻統計。它的優點是 利用字串的公共字首來減少查詢時間,最大限度地減少無謂的字串比較,查詢效率比雜湊樹高。對於下圖的trie樹,總共有4個單詞,abc,ad,efa...