Skip to content

Instantly share code, notes, and snippets.

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

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

Select an option

Save monkey-codes/72fba09348aaef91c60d35e86bd49c61 to your computer and use it in GitHub Desktop.
Simple binary search tree in python. Does not self balance.
class Node(object):
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class BST(object):
def __init__(self, root):
self.root = Node(root)
def insert(self, new_val):
self._insert(self.root, new_val)
def _insert(self, node, new_val):
if new_val < node.value:
if node.left == None: node.left = Node(new_val)
else : self._insert(node.left, new_val)
elif new_val > node.value:
if node.right == None: node.right = Node(new_val)
else: self._insert(node.right, new_val)
return
def search(self, find_val):
return self._search(self.root, find_val)
def _search(self, node, find_val):
if node == None: return False
if node.value == find_val: return True
if find_val < node.value: return self._search(node.left, find_val)
if find_val > node.value: return self._search(node.right, find_val)
return False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment