0
我需要将某些数据表示为层次结构,其中的对象可以有一个父项和多个子项。我也需要能够像孩子那样得到一个孩子的父母。表示双向遍历层次结构的最佳方式
我想这
class Root():
def __init__(self):
self.child = Node(self)
class Node():
def __init__(self, parent):
self.parent = parent
是否有解决这一问题在那里
我也是这么做的。循环引用可能是一个问题,如果你在递归子程序中以编程方式遍历树,但是有一些方法可以解决这个问题(路径追踪是这种事情的强力选择)。但是,能够回看树的一个好处是能够拥有一个返回从根节点到该节点的路径的child.path()方法。 – Adrian 2012-08-16 01:09:22
另外,您可以在没有Root对象的情况下执行此操作。如果您只是使用Node对象,并将None传递给根节点对象的父参数,则应该达到相同的效果。 – Adrian 2012-08-16 01:15:36
@Adrian - 是的。我只保留了一个'Root'对象,因为OP有。但是你是对的,如果'Node'同时具有'children'和'parent'属性,'Root'对象是不必要的。 – mgilson 2012-08-16 01:16:55