前缀树 Python
时间: 2024-06-05 09:05:11 浏览: 140
前缀树(也称为字典树、Trie树或PATRICIA树)是一种用于存储字符串数据的数据结构,它的每个节点代表一个字符,从根到某个节点的路径表示一个字符串的前缀。在Python中,虽然内置的数据结构如列表和字典可以满足一些需求,但如果你需要高效地进行前缀搜索和统计,前缀树是一个很好的选择。
在Python中,我们可以手动实现一个简单的前缀树,或者使用第三方库`xxhash`或`pyctrie`等来更方便地操作。以下是一个简单的Python手写前缀树实现:
```python
class TrieNode:
def __init__(self):
self.children = {}
self.is_word = False
class PrefixTree:
def __init__(self):
self.root = TrieNode()
def insert(self, word):
node = self.root
for char in word:
if char not in node.children:
node.children[char] = TrieNode()
node = node.children[char]
node.is_word = True
def search(self, prefix):
node = self.root
for char in prefix:
if char not in node.children:
return None
node = node.children[char]
return node
# 使用示例
tree = PrefixTree()
tree.insert("apple")
tree.insert("app")
result = tree.search("app")
if result and result.is_word:
print("存在以'app'开头的单词")
阅读全文