Skip to content

Instantly share code, notes, and snippets.

@Shadow6363
Created July 21, 2012 20:13
Show Gist options
  • Save Shadow6363/3156999 to your computer and use it in GitHub Desktop.
Save Shadow6363/3156999 to your computer and use it in GitHub Desktop.
Tree Traversal
class Node:
def __init__(self, value, left, right):
(self.value, self.left, self.right) = (value, left, right)
def preorder(tree):
if tree.value:
print tree.value
if tree.left:
Node.preorder(tree.left)
if tree.right:
Node.preorder(tree.right)
def inorder(tree):
if tree.left:
Node.inorder(tree.left)
if tree.value:
print tree.value
if tree.right:
Node.inorder(tree.right)
def postorder(tree):
if tree.left:
Node.postorder(tree.left)
if tree.right:
Node.postorder(tree.right)
if tree.value:
print tree.value
if __name__ == '__main__':
left = Node(2, Node('asdf', None, None), Node(11, None, None))
right = Node(7, None, Node(15, Node(65, None, None), None))
tree = Node(4, left, right)
print('Preorder')
Node.preorder(tree)
print('Inorder')
Node.inorder(tree)
print('Postorder')
Node.postorder(tree)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment