Trie字首樹簡單實現

2021-08-04 21:57:23 字數 1022 閱讀 7173

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 若沒有可以公用的部分...