У меня есть бинарное дерево с 7 элементами, которые в настоящее время выглядят следующим образом:Изменение бинарного дерева в питоне
1 5 2 7 6 4 3
я пытаюсь пройти его в postorder и relable элементов, как я иду, так что это выглядит как это:
7 3 6 1 2 4 5
используя следующую функцию, которая является частью моего Tree
класса:
def relable(self, h): if self.root is not None: self._relable(self.root, h) def _relable(self, node, h): if node is not None: self._relable(node.l, h-2) self._relable(node.r, h-1) node = Node(h)
Остальная часть моего класса Tree
более или менее совпадает с классом here. Я заполнил дерево add
с цифрами 1-7 в цикле.
Однако, когда я вызываю tree.relable(7)
, а затем печатаю дерево, дерево такое же. Я предполагаю, что это имеет какое-то отношение к тому, как Python передает аргументы (я программист на C++), но я не знаю, как это исправить. Весь мой код может быть fount here.