2010-03-17 70 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