Skip to content

Instantly share code, notes, and snippets.

@monkey-codes
Created May 12, 2017 04:01
Show Gist options
  • Select an option

  • Save monkey-codes/2a2bcede820499e3e3e1eb9e4e4d291b to your computer and use it in GitHub Desktop.

Select an option

Save monkey-codes/2a2bcede820499e3e3e1eb9e4e4d291b to your computer and use it in GitHub Desktop.
Simple binary tree in python with pre-order search
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 search(self, find_val):
return self.preorder_search(self.root, find_val)
def print_tree(self):
return '-'.join([str(i) for i in self.preorder_print(self.root, [])])
def preorder_search(self, start, find_val):
if start == None: return False
if start.value == find_val: return True
return self.preorder_search(start.left, find_val) or self.preorder_search(start.right, find_val)
def preorder_print(self, start, traversal):
if start == None: return traversal
traversal.append(start.value)
self.preorder_print(start.left, traversal)
self.preorder_print(start.right, traversal)
return traversal
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment