能不能写一段前缀树的代码
时间: 2024-04-29 19:25:34 浏览: 66
以下是前缀树的实现代码(使用Python语言):
```python
class TrieNode:
def __init__(self):
self.children = {}
self.isEndOfWord = False
class Trie:
def __init__(self):
self.root = TrieNode()
def insert(self, word: str) -> None:
node = self.root
for char in word:
if char not in node.children:
node.children[char] = TrieNode()
node = node.children[char]
node.isEndOfWord = True
def search(self, word: str) -> bool:
node = self.root
for char in word:
if char not in node.children:
return False
node = node.children[char]
return node.isEndOfWord
def startsWith(self, prefix: str) -> bool:
node = self.root
for char in prefix:
if char not in node.children:
return False
node = node.children[char]
return True
```
在上述代码中,`TrieNode`类表示前缀树的节点,每个节点包含一个字典 `children`,用于存储该节点的所有子节点,以及一个布尔值 `isEndOfWord`,表示该节点是否是一个单词的结尾。
`Trie`类表示前缀树,包含一个根节点 `root`。它提供了三个方法:
- `insert(word: str)`:向前缀树中插入一个单词 `word`。
- `search(word: str) -> bool`:判断单词 `word` 是否在前缀树中出现过。
- `startsWith(prefix: str) -> bool`:判断前缀 `prefix` 是否是某个单词的前缀。
阅读全文