以下是一个示例解决方案,使用Python实现前缀树(也称为字典树)和按顺序打印所有单词的功能:
class TrieNode:
def __init__(self):
self.children = {}
self.is_word = False
class Trie:
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, word):
node = self.root
for char in word:
if char not in node.children:
return False
node = node.children[char]
return node.is_word
def starts_with(self, prefix):
node = self.root
for char in prefix:
if char not in node.children:
return []
node = node.children[char]
return self._dfs(node, prefix)
def _dfs(self, node, prefix):
result = []
if node.is_word:
result.append(prefix)
for char in node.children:
result += self._dfs(node.children[char], prefix + char)
return result
# 创建一个前缀树
trie = Trie()
# 插入单词到前缀树中
trie.insert("apple")
trie.insert("banana")
trie.insert("bear")
trie.insert("cat")
trie.insert("dog")
# 按顺序打印前缀树中的所有单词
result = trie.starts_with("")
print(result)
运行上述代码将打印输出:['apple', 'banana', 'bear', 'cat', 'dog'],即按顺序打印了前缀树中的所有单词。
上一篇:按顺序打印结果