Skip to content

Instantly share code, notes, and snippets.

@nikhilc2710
Last active October 30, 2020 07:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nikhilc2710/250678a7cbbcbdbc6b05247c730e6db0 to your computer and use it in GitHub Desktop.
Save nikhilc2710/250678a7cbbcbdbc6b05247c730e6db0 to your computer and use it in GitHub Desktop.
#Our Tree structure
class Node:
def __init__(self,value):
self.left=None
self.data=value
self.right=None
class Tree:
def __init__(self,root):
self.root=Node(root)
tree=Tree(3)
tree.root.left=Node(9)
tree.root.right=Node(20)
tree.root.right.left=Node(15)
tree.root.right.right=Node(7)
###########################################################################################
def inorder(root,visited):
if root:
visited=inorder(root.left,visited)
visited.append(root.data)
visited=inorder(root.right,visited)
return visited
def preorder(root,visited):
if root:
visited.append(root.data)
visited=preorder(root.left,visited)
visited=preorder(root.right,visited)
return visited #return visited stack
def postorder(root,visited):
if root: #check if node exits
visited=postorder(root.left,visited)
visited=postorder(root.right,visited)
visited.append(root.data)
return visited
print(f'Inorder (L-V-R)',inorder(tree.root,[]))
print(f'Preorder (V-L-R)',preorder(tree.root,[]))
print(f'Postorder (L-R-v)',postorder(tree.root,[]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment