Я пытаюсь выполнить обход поступорядочения двоичного дерева, используя только непрерывную реализацию. Вот что у меня есть. Но по какой-то причине pos не обновляется, поэтому значения будут сохраняться только в индексе 0 непрерывного массива. В результате я получил только последнее значение обхода вместо полного завершенного массива значений.
INFINITY = 100
def postorder(self):
contig = Contiguous(INFINITY)
postorder_helper(self, self.root(),contig)
return contig
def postorder_helper(bt, node, lst):
pos = 0
if node == None or bt.value(node) == None:
return
postorder_helper(bt, bt.left_child(node),lst)
postorder_helper(bt, bt.right_child(node),lst)
lst.store(pos, bt.value(node)) ## store(index, value) takes a value and store it in array at given index
pos = pos + 1
# ie. Expected(8, 14, 5, 13, 16)
# returned (16)