Python Trie的前序遍历
我需要对一个trie进行一次预排序遍历,我做了一系列的尝试,但没有得到任何结果。这里是node和trie类,trie类中的最后一个方法不起作用。我尝试使用递归来处理这个问题,但是,我不认为我使用了正确的代码。请帮帮我Python Trie的前序遍历,python,data-structures,trie,Python,Data Structures,Trie,我需要对一个trie进行一次预排序遍历,我做了一系列的尝试,但没有得到任何结果。这里是node和trie类,trie类中的最后一个方法不起作用。我尝试使用递归来处理这个问题,但是,我不认为我使用了正确的代码。请帮帮我 class Node_Q3: def __init__(self, letter): self.letter = letter self.complete_word = False self.children = {
class Node_Q3:
def __init__(self, letter):
self.letter = letter
self.complete_word = False
self.children = {}
class Trie_Q3:
self.root = Node_Q3('')
self.nodes = {}
if type(word_list) is list:
for i in word_list:
self.insert(i)
elif word_list == None:
pass
else:
self.insert(word)
def insert(self, word):
node = self.root
word = word.lower()
for char in word:
if char in node.children:
node = node.children[char]
else:
new_node = Node_Q3(char)
node.children[char] = new_node
node = new_node
self.nodes[word] = node
node.complete_word = True
def lookup(self, word):
if not self.root.children:
return False
node = self.root
word = word.lower()
for letter in word:
if letter in node.children.keys():
node = node.children[letter]
else:
return False
return node.complete_word
def preorder_traversal(self):
lst = []
val = self.root.letter
if val == None:
val=''
for c in self.root.children.values():
lst.extend(.preorder_traversal())
lst = [val+x for x in lst]
return lst
```