我正在尝试创建一个实现n元树的Node类,但我也想跟踪每个节点的父级以追溯到根。
class Node(object):
def __init__(self, state, children=None, parent=None):
self.state = state
self.children = children or []
self.parent = parent
def add(self, obj):
self.children.append(Node(obj))
Node(obj).parent = self.state
这就是我一直在努力的。但是,当我查看节点的父节点时,它会显示“无”。在二叉树中,检查孩子是在左边还是在右边很容易,但是对于n元树,我真的不明白如何通过显式地将其设为父树来进行处理。
我对Python和编码非常陌生,所以如果有人可以帮忙,我将不胜感激! 谢谢!
instead of
self.parent = parent
你想做
在这里,您正在动态创建一个Node实例,并将其附加到子代列表中
那是动态分配的Node的额外实例,您正在为其分配其父对象为self.state。
我认为您正在尝试执行以下操作:
这样,您将创建Node的实例并将其引用存储在变量node中,然后将其父级分配为当前Node实例(具有自引用),并将引用保存到其子级列表中。
另外,您可以执行以下操作:
因为您要在构造函数中分配父项。