Итак, я пытаюсь реализовать n-арное дерево, цель которого - хранить иерархические темы для программы брокера сообщений.
def insert(self, topics_array):
# topics_array [/a', '/b', '/c']
print("Inserting array: ")
print(topics_array)
if self.search_node(topics_array[0]):
print("Topic " + topics_array[0] + " already exists")
if topics_array == []:
return
self.insert(topics_array[1:])
else:
print(topics_array[0] + " not in node list - adding to node ")
self.children_list.append(topics_array[0])
if topics_array[1:] != []:
self.insert(topics_array[1:])
else:
return
def __init__(self):
self.children_list = []
self.topic = '/'
def Node(self, topic):
self.children_list = []
self.topic = topic
def search_node(self, topic):
print("---- Searching Node for topic: " + topic)
print("children list")
print(self.children_list)
print("---- Ended Search for " + topic)
for t in self.children_list:
if t == topic:
return True
return False
Проблема в том, что я не создаю новый узел. Пример: я вставляю / а - хорошо! Я вставляю / a / b / c, и он говорит мне, что у него уже есть / a, и вместо «ветвления» узла и добавления b в новую ветвь он добавляет / b к ветке на том же «уровне» / a
Извините, если это сбивает с толку, но, пожалуйста, помогите. Присылайте мне вопросы, если вы не понимаете того, что я пытался объяснить!