python怎么遍历字典树
时间: 2023-06-20 08:03:11 浏览: 111
在Python中,可以使用字典来实现字典树。遍历字典树可以使用递归或迭代的方式实现。以下是使用递归方式遍历字典树的示例代码:
```python
def traverse_trie(node, prefix):
if node.is_end:
print(prefix)
for char, child_node in node.children.items():
traverse_trie(child_node, prefix + char)
```
在这个例子中,`node`代表字典树的当前节点,`prefix`代表从根节点到当前节点所组成的前缀。如果当前节点为单词的结尾,则打印出该单词。然后遍历当前节点的所有子节点,递归调用`traverse_trie`函数,将子节点作为新的当前节点,将子节点的字符添加到前缀中。
如果你使用的是迭代方式,可以使用栈来实现。以下是使用栈方式遍历字典树的示例代码:
```python
def traverse_trie_iterative(root):
stack = [(root, '')]
while stack:
node, prefix = stack.pop()
if node.is_end:
print(prefix)
for char, child_node in node.children.items():
stack.append((child_node, prefix + char))
```
在这个例子中,我们使用一个栈来存储节点和前缀。从根节点开始,将根节点和空前缀添加到栈中。然后,从栈中弹出一个节点和前缀,如果该节点为单词的结尾,则打印出该单词。然后遍历该节点的所有子节点,将子节点和子节点对应的前缀添加到栈中。重复这个过程,直到栈为空。
阅读全文