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

Der Versuch, eine Tree-Klasse mit zwei Unterklassen Knoten und Blatt zu erklären, der ObjektbaumTree-Klasse Implementierung mit Knoten und Blatt

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 

Wäre dies die korrekte Umsetzung zu handhaben?

+0

Für einen binären Baum, ja. –

Antwort

0

Dies wäre eine korrekte Implementierung des Binärbaums. Denken Sie jedoch daran, dass Sie, wenn Sie die Wurzel des Baumes ändern, jeden einzelnen Knoten und jedes Blatt in diesem Baum aktualisieren müssen.

self.root ist eine schlechte Idee, wenn Sie Teilbäume erstellen würden, die Sie später zu einem anderen Baum hinzufügen würden. Aber wenn Sie nicht planen, so etwas zu tun, wäre dies eine gute Idee.

Verwandte Themen