问题描述
我需要对Trie进行预遍历,并且已经进行了许多试验,但未获得任何结果。这是节点和trie类,并且trie类中的最后一个方法不起作用。我尝试使用递归来解决此问题,但是,我认为我没有使用正确的代码。请帮帮我!
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
```
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)