我在 python 中将 Trie 编程为一个类。搜索和插入功能很清楚,但现在我尝试编写 python 函数__str__
,我可以将它打印在屏幕上。但是我的功能不起作用!
class Trie(object):
def __init__(self):
self.children = {}
self.val = None
def __str__(self):
s = ''
if self.children == {}: return ' | '
for i in self.children:
s = s + i + self.children[i].__str__()
return s
def insert(self, key, val):
if not key:
self.val = val
return
elif key[0] not in self.children:
self.children[key[0]] = Trie()
self.children[key[0]].insert(key[1:], val)
现在,如果我创建一个 Trie 对象:
tr = Trie()
tr.insert('hallo', 54)
tr.insert('hello', 69)
tr.insert('hellas', 99)
当我现在打印 Trie 时,会出现条目 hello 和 hellas 不完整的问题。
print tr
hallo | ellas | o
我该如何解决这个问题?