首页 > 其他 > 详细

字典树实现

时间:2019-11-19 20:25:23      阅读:96      评论:0      收藏:0      [点我收藏+]

字典树,又称单词查找树,Trie 树,是一种树形结构,是一种哈希树的变种。

典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。

它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希树高。

技术分享图片

 

 

以下是代码实现部分

# 字典树

class TrieNode2:

    def __init__(self):
        self.childs = dict()  # 构建字典
        self.is_leaf = False

    def insert(self, word: str):
        curr = self
        for char in word:
            if char not in curr.childs:
                curr.childs[char] = TrieNode2()
            curr = curr.childs[char]
        curr.is_leaf = True

    def search(self, word: str):
        curr = self
        for char in word:
            if char not in curr.childs:
                return False
            curr = curr.childs[char]
        return curr.is_leaf


‘‘‘
下面是测试代码
‘‘‘
trie = TrieNode2()

trie.insert("anything")
trie.insert("anybody")
trie.insert("anybody1")
trie.insert("anybody3")
print(trie.search("key"))  # ->False
print(trie.search("anybody1"))  # ->True

 

字典树实现

原文:https://www.cnblogs.com/coloz/p/11892067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!