最近在看中文分詞基數, 其中涉及到了字典樹的知識, 研究了一下:
class trie(object):
class node:
def __init__(self):
self.is_word = false # 是否乙個單詞的結尾
self.dict = dict()
def __init__(self):
self.root = trie.node()
def insert(self, word):
node = self.root
for c in word:
if c not in node.dict:
node.dict[c] = trie.node()
node = node.dict[c]
node.is_word = true
def search(self, word):
node = self.root
for c in word:
if c not in node.dict:
return false
else:
node = node.dict[c]
return node.is_word
def startswith(self, prefix):
node = self.root
for c in prefix:
if c not in node.dict:
return false
else:
node = node.dict[c]
return true
測試:
trie= trie()
trie.insert("雷峰")
trie.insert("雷峰塔")
print(trie.search("雷"))
print(trie.search("雷峰"))
print(trie.search("雷峰塔"))
# 結果
false
true
true
參考 Trie 字典樹 的遞迴版本
private void insert node node,string word,int index 在以node為根的trie樹中插入以index開始的子串 word index,end private boolean contains node node,string word,int ind...
python的字典樹
coding utf 8 字典樹測試 python沒有指標,但是可以用巢狀字典來實現樹結構.對於非ascii的單詞,統一用unicode編碼來插入與搜尋.classtrienode 這是節點 def init self 定義節點的資料結構,並初始化,設定標誌位判斷是否單詞是否是完整的存在於字典樹中 ...
Python字典中的值為列表或字典的構造例項
1 值為列表的構造例項 dic 程式設計客棧 dic.setdefault key,append value 示程式設計客棧例如下 www.cppcns.com dic.setdefault a append 1 dic.setdefault a append 2 dic 2 值為字典的構造例項 d...