字典树实现

字典树,又称单词查找树,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

猜你喜欢

转载自www.cnblogs.com/coloz/p/11892067.html
今日推荐