Ich schrieb diesen Code, um Präfix Baum zu testen, aber aus irgendeinem Grund bekomme ich den Fehler "TrieNode" -Objekt ist nicht aufrufbar. Könnte jemand mir helfen, diesen Fehler zu beheben?TypeError: "'TrieNode' -Objekt kann nicht aufgerufen werden" - Was ist falsch an meinem Code?
Warum ist die Klasse TrieNode() nicht aufrufbar? >root
dort -
# Prefix Tree or Trie Data Structure
class TrieNode(object):
def __init__(self):
self.children = {}
self.endOfWord = False
class Trie(object):
def __init__(self):
self.root = TrieNode()
def insert(self,word):
node = self.root()
for w in word:
if w not in node.children:
node.children[w] = TrieNode()
node = node.children[w]
node.endOfWord = True
def search(self,word):
node = self.root
for w in word:
if w not in node.children:
return False
node = node.children[w]
return node.endWord
def startsWith(self,prefix):
node = self.root
for w in prefix:
if w not in node.children:
return False
node = node.children[w]
return True
if __name__ == "__main__":
trie = Trie()
trie.insert("apple")
trie.insert("apples")
trie.insert("bat")
trie.insert("bate")
print trie.search("apple")
Veröffentlichen Sie den vollständigen Fehler, einschließlich der * Stack-Trace * –
'node = self.root()' ist Ihr Fehler. 'self.root' ist bereits eine TrieNode-Instanz und Sie versuchen, das zu nennen. –
Ich rate von hier aus: 'node = self.root()', aber * warum * würdest du dingen, dass TrieNode-Instanzen aufrufbar sind? –