2016-03-28 137 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如果您要創建子樹,您稍後將添加到另一棵樹中,這是一個壞主意。但如果你不打算做這樣的事情,這將是一個好主意。