2010-03-17 80 views
1

如何在Python中實現樹?Python中的樹實現

我是Python初學者。

給我一個大概的想法!

+4

還學會適當地格式化問題,否則下次這裏的人會無情地激怒你。 – 2010-03-17 10:18:50

回答

5

構建一個Node類,它有一些內容對象和一個子對象列表,它們也是Node的實例。

+1

的答案是對的。這裏的想法(以及在樹的Java實現中)是使用合成,因爲語法不支持指針。子節點列表存儲對子節點對象的引用。 – CruiZen 2011-05-04 13:09:19

5
class Tree(object): 
    def __init__(self, name, left_subtree = None, right_subtree = None): 
     self._name = name 
     self._left_subtree = left_subtree 
     self._right_subtree = right_subtree 

def inorder(tree): 
    if tree is not None: 
     inorder(tree._left_subtree) 
     print tree._name 
     inorder(tree._right_subtree) 

if __name__ == '__main__': 
    a = Tree('a') 
    b = Tree('b') 
    c = Tree('c', a, b) 
    inorder(c) 
+0

您的網址已損壞。 – DevPlayer 2012-07-13 06:29:14

+0

@DevPlayer刪除了鏈接並添加了代碼。 :) – 2012-07-24 07:35:24

+3

當然'inorder()'應該是'Tree'的方法,而不是自由浮動函數?爲避免跟隨一個無指針,只需檢查指針,然後再遞歸到指針中即可。你能解決這些問題嗎? – smci 2013-03-02 07:49:52