trie樹,字首樹,字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構。
典型應用是用於統計和排序大量的字串(但不僅限於字串),可以用於搜尋引擎系統,用於文字詞頻統計。
trie利用字串的公共字首來避免無謂的查詢,從而降低查詢時間的開銷以達到提高效率的目的。
1.根節點不包含字元,除根節點外每乙個節點都只包含乙個字元。
2.每乙個節點與它所在樹中的位置一起決定了它所代表的字串(雖然它自身只儲存乙個char)。
也可以這樣理解,每條邊對應著乙個字元char(事實上是該邊指向的節點儲存的這個char),從根節點到某一節點,路徑上經過的字元連線起來,為該節點所代表的字串。
3.每個節點的所有子節點包含的字元都不相同。
寫了乙個簡單的有增加,查詢功能的trie樹,**如下
public
class
trie
}/**
* initialize
*/private node root;
public
trie()
/*** 插入
*/public
void
insert(string word)
ns = ns.subs[c - 'a'];
}ns.i***ist = true;
}/**
* 查詢
*/public
boolean
search(string word)
return ns.i***ist;
}/**
* 查詢字首是否存在
*/public
boolean
startswith(string prefix)
return
true;
}}
使用的話,直接new trie()就可以,非常簡潔,樹的深度大概為字串的平均長度,查詢效率o(slen),即為平均插入字串的長度。
這個應該只是簡單版的trie,以後還有待深入學習。
208 實現Trie 字首樹
實現乙個 trie 字首樹 包含 insert,search,和 startswith 這三個操作。示例 trie trie new trie 說明 你可以假設所有的輸入都是由小寫字母 a z 構成的。保證所有輸入均為非空字串。class trie def init self self.root d...
trie樹(字首樹)
trie 樹,又稱字典樹,單詞查詢樹。它 於retrieval 檢索 中取中間四個字元構成 讀音同try 用於儲存大量的字串以便支援快速模式匹配。主要應用在資訊檢索領域。trie 有三種結構 標準trie standard trie 壓縮trie 字尾trie suffix trie 這裡只將前兩種...
Trie字首樹原理
依次輸入 msb msn msbtech wltech會產生如上圖資料結構 1 如果出現可以公用的元素,則另開分支將不可以公用的部分進行儲存,最後乙個節點標記為綠色 2 在查詢時按照從頭到尾的順序進行查詢,只有每個節點都符合並且最後乙個字母為綠色final節點時代表查詢成功 3 若沒有可以公用的部分...