Последовательный обход бинарного дерева с использованием непрерывной реализации - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь выполнить обход поступорядочения двоичного дерева, используя только непрерывную реализацию. Вот что у меня есть. Но по какой-то причине 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)
...