【发布时间】:2020-05-24 01:02:02
【问题描述】:
我正在尝试创建一个实现 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 和编码还很陌生,所以如果有人能提供帮助,我将不胜感激! 谢谢!
编辑:
我在 IDE 上运行了这个:
>>> n = Node(4)
>>> l = [1,2,3]
>>> for i in l:
n.add_child(i)
>>> n.children.state
Traceback (most recent call last):
File "<pyshell#63>", line 1, in <module>
n.children.state
AttributeError: 'list' object has no attribute 'state'
>>> for child in n.children:
print(child.state)
1
2
3
>>> for child in n.children:
print(child.parent)
None
None
None
>>>
【问题讨论】:
-
你能写下你是如何使用它的,你是如何检查父母的
-
@ashishsingh 我已经进行了编辑。你可以看看。
-
我已经写了一个答案..请检查
标签: python class tree nodes parent