2017-09-21 3 views
0

Ich hatte Binärbäume in C++ gemacht und versuchte, eine BST in Python zu machen, so schrieb ich den Code wie unten gezeigt. Aber, nichts wird angezeigt! Ich weiß nicht, was passiert.Nicht benötigte Ergebnisse in binären Suchbaum (BST) in Python

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


class Tree: 
    def __init__(self): 
     self.root = None 
     pass 

    def createNode(self, val): 
     return Node(val) 

    def insert(self, value): 
     self.__insert(self.root, value) 

    def __insert(self, rootptr, val): 
     if rootptr is None: 
      rootptr = self.createNode(val) 
      return 0 

     elif val < rootptr.value: 
      if rootptr.left is not None: 
       self.__insert(rootptr.left, val) 
      else: 
       rootptr.left = self.createNode(val) 

     elif val > rootptr.value: 
      if rootptr.right is not None: 
       self.__insert(rootptr.right, val) 
      else: 
       rootptr.right = self.createNode(val) 

     else: 
      #TODO: raise exception 
      print("Duplicate value!") 



    def traversePreorder(self): 
     self.__traversePreorder(self.root) 

    def __traversePreorder(self, rootptr): 
     if rootptr is None: 
      return 1 
     print(rootptr.value) 
     self.__traversePreorder(rootptr.left) 
     self.__traversePreorder(rootptr.right) 




mytree = Tree() 
mytree.insert(1) 
mytree.insert(2) 
mytree.insert(2) 
mytree.insert(4) 
mytree.insert(5) 
mytree.traversePreorder()  

habe ich versucht, eine Menge zwickt hier und da aber zu meiner Frustration nichts worked.Any Hilfe appreciated.Thank Sie wäre.

Antwort

Verwandte Themen