Created
October 13, 2012 05:32
-
-
Save thiagopnts/3883361 to your computer and use it in GitHub Desktop.
binary tree python implementation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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