Skip to content

Instantly share code, notes, and snippets.

@DiegoGallegos4
Last active April 17, 2019 21:36
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 DiegoGallegos4/0f98c9e5902a263e75d4ecf9ba103043 to your computer and use it in GitHub Desktop.
Save DiegoGallegos4/0f98c9e5902a263e75d4ecf9ba103043 to your computer and use it in GitHub Desktop.
Tree
class BinaryTree:
def __init__(self, key, left=None, right=None):
self.key = key
self.left = left
self.right = right
def insert_left(self, key):
if self.left:
node = BinaryTree(key)
node.left = self.left
self.left = node
else:
self.left = BinaryTree(key)
def insert_right(self, key):
if self.right:
node = BinaryTree(key)
node.right = self.right
self.right = node
else:
self.right = BinaryTree(key)
tree = BinaryTree("Les")
tree.insert_left("Cathy")
tree.insert_right("Sam")
tree.left.insert_left("Alex")
tree.left.insert_right("Frank")
tree.right.insert_left("Nancy")
tree.right.insert_right("Violet")
def preorder(tree):
if not tree:
return
print(tree.key)
preorder(tree.left)
preorder(tree.right)
def inorder(tree):
if not tree:
return
inorder(tree.left)
print(tree.key)
inorder(tree.right)
def postorder(tree):
if not tree:
return
postorder(tree.left)
postorder(tree.right)
print(tree.key)
print("Pre-Order Traversal")
preorder(tree)
print("\nIn-Order Traversal")
inorder(tree)
print("\nPost-Order Traversal")
postorder(tree)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment