2016-05-25 4 views
-1

Wir wissen nicht, wie in Traversierungsreihenfolge zu drucken und auch nicht wissen, wie Sie das Ergebnis ausdrucken, wenn wir die binary_str eingeben, kann uns jemand helfen?Etwas über die Verwendung inorder traversal druckt alle Elemente im Binärbaum

class TreeNode: 
    def __init__(self , item , left , right): 
     self.item = item 
     self.right = right 
     self.left = left 

class BinaryTree: 
    def __init__(self): 
     self.root = None 
    def add(self , item , binary_str): 
     binary_str_itr = iter(binary_str) 
     self.root = self.add_aux(self.root , item , binary_str_itr) 

    def add_aux(self , current , item , binary_str_itr): 
     if current is None: 
      current = TreeNode(None , None , None) 
     try: 
      bit = next(binary_str_itr) 
      if bit == '0': 
       current.left = self.add_aux(current.left , item , binary_str_itr) 
      elif bit == '1': 
       current.right = self.add_aux(current.right , item , binary_str_itr) 
     except StopIteration: 
      current.item = item 
     return current 


    def print_inorder(self): 
     self.print_inorder_aux(self.root) 

    def print_inorder_aux(self,current): 
     if current is not None:   #if not a base case 
      self.print_inorder_aux(current.left) 
      print(current) 
      self.print_inorder_aux(current.right) 

Antwort

0

Für Inoder Traversal, Daumen-Regel ist

leftChild - Root - rightChild 

auf bis Folgen untenstehenden Link for better understanding

+0

@Uncle SAM, für Ihren Fall goldene Faustregel self.left ist - self.item - Selbst .Recht –