N-арное дерево не создает новые узлы в python - PullRequest
0 голосов
/ 06 апреля 2020

Итак, я пытаюсь реализовать 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

Извините, если это сбивает с толку, но, пожалуйста, помогите. Присылайте мне вопросы, если вы не понимаете того, что я пытался объяснить!

...