TRAVERSE INORDER PREORDER POSTORDER : BINARY SEARCH TREE

 # traverse inorder, preorder, postorder

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

class BinaryTree(object):
    def __init__(self,root):
        self.root=Node(root)

    def print_tree(self,traversal_type):
        if traversal_type=="preorder":
            return self.preorder_print(tree.root, "")    
        elif traversal_type=="inorder":
            return self.inorder_print(tree.root, "")    
        if traversal_type=="postorder":
            return self.postorder_print(tree.root, "")    
        
        else:
            print("Traversal type "+str(traversal_type)+" is not supported. ")
            return False

    def preorder_print(self,start,traversal):
        """Root->left->right"""
        if start:
            traversal +=(str(start.value)+"-")
            traversal = self.preorder_print(start.left, traversal)
            traversal =self.preorder_print(start.right,traversal)
        return  traversal
    def inorder_print(self,start,traversal):
        """left->Root->right"""
        if start:
            traversal = self.inorder_print(start.left, traversal)
            traversal +=(str(start.value)+"-")
            traversal =self.inorder_print(start.right,traversal)
        return  traversal    

    def postorder_print(self,start,traversal):
        """left->right->Root"""
        if start:
            traversal = self.postorder_print(start.left, traversal)            
            traversal =self.postorder_print(start.right,traversal)
            traversal +=(str(start.value)+"-")
        return  traversal    


tree=BinaryTree(1)
tree.root.left=Node(2)
tree.root.right=Node(3)
tree.root.left.left=Node(4)
tree.root.left.right=Node(5)
tree.root.right.left=Node(6)
tree.root.right.right=Node(7)
tree.root.right.right.right=Node(8)


print(tree.print_tree("preorder"))
print(tree.print_tree("inorder"))
print(tree.print_tree("postorder"))

Comments

Popular posts from this blog

Python Program to Find HCF or GCD

SAME NAME IN CLASS METHOD AND CONSTRUCTOR

CONVERT CARTESIAN COORDINATES TO POLAR COORDINATE