У меня есть следующая реализация для структуры данных (Trie), и она работает как положено.У меня есть основной класс Node
и класс-оболочка Trie
.Я хочу переместить функцию _insert()
из класса Node
в класс Trie
, чтобы максимально упростить Node
.Но я сталкиваюсь со многими проблемами, такими как class Trie has no object nodes and no object word.
Есть ли способ сделать это, не передавая вызывающий объект из главного входа?Ожидания:
trie.insert("Hi")
Вся реализация insert()
в классе Trie
class Node:
def __init__(self):
self.word = None
self.nodes = {}
def _insert(self, word, string_pos=0):
current_lettter = word[string_pos]
if current_lettter not in self.nodes:
self.nodes[current_lettter] = Node()
if(string_pos + 1 == len(word)):
self.nodes[current_lettter].word = word
else:
self.nodes[current_lettter]._insert(word, string_pos + 1)
return True
class Trie:
def __init__(self):
self.root = Node()
def insert(self, word):
self.root._insert(word)
trie = Trie()
trie.insert("Hi")