Skip to content

Instantly share code, notes, and snippets.

@thiagopnts
Created October 13, 2012 05:32
Show Gist options
  • Save thiagopnts/3883361 to your computer and use it in GitHub Desktop.
Save thiagopnts/3883361 to your computer and use it in GitHub Desktop.
binary tree python implementation
class Node:
def __init__(self, left=None, right=None, key=None, value=None):
self.left = left
self.right = right
self.key = key
self.value = value
class BinarySeachTree:
def __init__(self, root=None):
self.root = root
def put(self, key, value):
self.root = self.__put(key, value, self.root)
def __put(self, key, value, node):
if node == None:
return Node(key=key, value=value)
if key < node.key:
node.left = self.__put(key, value, node.left)
elif key > node.key:
node.right = self.__put(key, value, node.right)
elif node.key is key:
node.value = value
return node
def get(self, key):
return self.__get(key, self.root)
def __get(self, key, node):
if node == None:
return None
if key < node.key:
return self.__get(key, node.left)
elif key > node.key:
return self.__get(key, node.right)
elif key is node.key:
return node.value
def min(self, node=None):
node = node or self.root
if node.left == None:
return node.value
return self.min(node.left)
def max(self, node=None):
node = node or self.root
if node.right == None:
return node.value
return self.max(node.right)
def delete(self, key):
pass
tree = BinarySeachTree()
tree.put('H', 'H')
tree.put('C', 'C')
tree.put('I', 'I')
tree.put('B', 'B')
print tree.get('H')
print tree.get('C')
print tree.get('I')
print tree.get('B')
print tree.get('Z')
tree.put('Z', 'Z')
print tree.min()
print tree.max()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment