课程-让父母改变会影响孩子

时间:2018-08-06 13:10:01

标签: python

我正在尝试使用类表示二叉树。这就是我所拥有的:

class Tree:
    def __init__(self, cargo, parent=None, left=None, right=None):
        self.cargo = cargo
        self.parent = parent
        self.left = left
        self.right = right
        self.path = ''

    def giveChild(self, child, sub):
        child.parent = self.cargo
        if sub == 'left':
            self.left = child
            child.path += 'l'
        if sub == 'right':
            self.right = child
            child.path += 'r'

我使用path来存储从根到某个叶子的路径,例如“ llrlr”(左-左-右-左-右)。 当我向树中添加新节点时,我从下到上。首先,我创建叶子,然后给它们一个父节点。 好的,现在我创建两个叶子:

r = Tree('r')
p = Tree('p')

我创建了下一个节点,该节点是 r p

的父节点
rp = Tree('rp')
rp.giveChild(r, 'left')

现在,由于 r rp 的左节点,所以 r 的路径变为“ l”。 问题是当 rp 获取父节点时如何更改 r 的路径?我的代码不会将路径更改为'... ll''... rl',仍然只是'l'

0 个答案:

没有答案