2016-03-28 105 views
0
tree = Node ("one", 
      Node ("two", Leaf ("three"), Leaf ("four")), 
      Node ("five", Leaf ("six"), Leaf ("seven"))) 

试图声明一个树类2子节点和叶来处理树对象树类的实现与节点和叶

class Tree: 
    def __init__(self, root): 
     self.root = root 

# some functions 
#def inorder(self, visitor): 
# Node.inorder(self.left, visitor) 
# visitor(self.data) 
# Node.inorder(self.right, visitor) 

#def fns(tree): 
# return 

class Node (Tree): 
    def __init__(self, value, left, right): 
     self.left = left 
     self.right = right 
     self.value = value 

class Leaf (Tree): 
    def __init__(self, value): 
     self.value = value 

这将是正确的实现?

+0

对于二叉树,是的。 –

回答

0

这将是一个正确的二叉树实现。但请记住一点,如果您更改树的根目录,则需要更新该树中的每个单个节点和树叶。

self.root如果您要创建子树,您稍后将添加到另一棵树中,这是一个坏主意。但如果你不打算做这样的事情,这将是一个好主意。