您的位置:首页 > 理论基础 > 数据结构算法

Python数据结构与算法之字典树实现方法示例

2017-12-13 11:24 966 查看
class TrieTree():
def __init__(self):
self.root = {}
def addNode(self,str):
# 树中每个结点(除根节点),包含到该结点的单词数,以及该结点后面出现字母的键
nowdict = self.root
for i in range(len(str)):
if str[i] not in nowdict:  # 发现新的组合方式
nowdict[str[i]] = {'count':0,'prefix':str[:i+1]}
nowdict = nowdict[str[i]]  # 转移到下一个结点
nowdict['count'] += 1
def countWord(self,str):
# 返回输入单词在树中出现的次数
nowdict = self.root
for s in str:
if s not in nowdict:
return 0
nowdict = nowdict[s]  # 匹配当前结点,转下一个结点
# 到了这一步证明单词存在
return nowdict['count']
if __name__=="__main__":
pass
Text = ['b','abc','abd','bcd','abcd','efg','hii','bcd']
t = TrieTree()
for str in Text:
t.addNode(str)
print t.countWord('bcd')
>>> 2

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程

希望本文所述对大家Python程序设计有所帮助。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息