Как создать дерево Python, в котором дочерние элементы зависят только от родительского - PullRequest
0 голосов
/ 31 марта 2020

Как мне создать двоичное дерево в python, где дочерние элементы зависят от родителя?

Например, скажем, root равно 1, левый дочерний элемент 2 * родитель, а правый дочерний элемент 3 * родитель:

       1
      / \
     2   3
    /\   /\
   4  6 6  9

et c. до высоты n?

Спасибо

1 Ответ

0 голосов
/ 31 марта 2020

Это простая рекурсия:

def bt(h, n=1):
    if h > 0:
        return n, bt(h-1, 2*n), bt(h-1, 3*n)

>>> bt(1)
(1, None, None)
>>> bt(2)
(1, (2, None, None), (3, None, None))
>>> bt(3)
(1, (2, (4, None, None), (6, None, None)), (3, (6, None, None), (9, None, None)))
...