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