Skip to content

Instantly share code, notes, and snippets.

@rishi93
Created December 16, 2017 17:00
Show Gist options
  • Select an option

  • Save rishi93/0ee52eddf6f59051434bd2f485080c3e to your computer and use it in GitHub Desktop.

Select an option

Save rishi93/0ee52eddf6f59051434bd2f485080c3e to your computer and use it in GitHub Desktop.
Inorder, Preorder, Postorder traversals
class Node:
def __init__(self, data):
self.data = data
self.left = None
self.right = None
class BinaryTree:
def __init__(self):
self.root = None
def inorder(self, curr):
if curr is None:
return
self.inorder(curr.left)
print(curr.data, end = ' ')
self.inorder(curr.right)
def preorder(self, curr):
if curr is None:
return
print(curr.data, end = ' ')
self.preorder(curr.left)
self.preorder(curr.right)
def postorder(self, curr):
if curr is None:
return
self.postorder(curr.left)
self.postorder(curr.right)
print(curr.data, end = ' ')
tree = BinaryTree()
tree.root = Node(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("The inorder traversal is:")
tree.inorder(tree.root)
print()
print("The preorder traversal is:")
tree.preorder(tree.root)
print()
print("The postorder traversal is")
tree.postorder(tree.root)
print()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment