Post-Order Tree Traversal

inserting an Image inserting an Image

Code:

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 == "postorder":   
            return self.postorder_print(tree.root, "")

        else: 
            print("Traversal type " + str(traversal_type) + " is not supported.")
            return False


    def postorder_print(self, start, traversal):

        """Left->Right->Root"""

        if start:

            print("Start Node:", start.value)

            traversal = self.postorder_print(start.left, traversal)


            traversal = self.postorder_print(start.right, traversal)


            traversal += (str(start.value) + "-")

            print('Traversal:', traversal)


        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)


print(tree.print_tree("postorder"))