拜讀了 jeffery zhao 的大作 後,有自己寫一棵字首樹的衝動,於是花了一點時間,樸素地實現了。
[edit]發現這個實現有很多漏洞,隱藏了……真要看,點此展開
**:
using用的話鍵的型別要實現 ienumerable,用法簡單:system
.collections
.generic;
namespace
datastructure
.trees
public
trie(
trienode
<
tkeyfragment, tvalue
>
root )
public bool
store(
ienumerable
<
tkeyfragment
>
key, tvalue value )
public
ienumerable
<
tvalue
>
lookfor(
ienumerable
<
tkeyfragment
>
key )
}public class
trienode
<
tkeyfragment, tvalue
>
return
table[nextfragment]
.expand(keyenumerator, value);
}else
return true
; }
}protected internal virtual
ienumerable
<
tvalue
>
lookfor(
ienumerator
<
tkeyfragment
>
keyenumerator )
return
table[nextfragment]
.lookfor(keyenumerator);
}else}}
}
class還沒有想到怎麼合併沒有對應 value 的中間節點,回去再想想。program
}
Trie字首樹簡單實現
trie樹,字首樹,字典樹,又稱單詞查詢樹或鍵樹,是一種樹形結構。典型應用是用於統計和排序大量的字串 但不僅限於字串 可以用於搜尋引擎系統,用於文字詞頻統計。trie利用字串的公共字首來避免無謂的查詢,從而降低查詢時間的開銷以達到提高效率的目的。1.根節點不包含字元,除根節點外每乙個節點都只包含乙個...
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 這裡只將前兩種...