__author__ = 'nitin'
class BinaryTree:
def __init__(self,rootObj):
self.key = rootObj
self.leftChild = None
self.rightChild = None
def insertLeft(self,newNode):
if self.leftChild == None:
self.leftChild = BinaryTree(newNode)
else:
t = BinaryTree(newNode)
t.leftChild = self.leftChild
self.leftChild = t
def insertRight(self,newNode):
if self.rightChild == None:
self.rightChild = BinaryTree(newNode)
else:
t = BinaryTree(newNode)
t.rightChild = self.rightChild
self.rightChild = t
def getRightChild(self):
return self.rightChild
def getLeftChild(self):
return self.leftChild
def setRootVal(self,obj):
self.key = obj
def getRootVal(self):
return self.key
def add_to_tree(alist,start,end):
if end return None
mid=(start+end)/2
n=BinaryTree(mid)
n.insertLeft(add_to_tree(alist,start,mid-1))
n.insertRight(add_to_tree(alist,mid+1,end))
return n
def create_minimal_bst(alist):
return add_to_tree(alist,0,len(alist)-1)
alist=[2,5,7,9,12,14,21,33,43,55,67,88]
print create_minimal_bst(alist)
class BinaryTree:
def __init__(self,rootObj):
self.key = rootObj
self.leftChild = None
self.rightChild = None
def insertLeft(self,newNode):
if self.leftChild == None:
self.leftChild = BinaryTree(newNode)
else:
t = BinaryTree(newNode)
t.leftChild = self.leftChild
self.leftChild = t
def insertRight(self,newNode):
if self.rightChild == None:
self.rightChild = BinaryTree(newNode)
else:
t = BinaryTree(newNode)
t.rightChild = self.rightChild
self.rightChild = t
def getRightChild(self):
return self.rightChild
def getLeftChild(self):
return self.leftChild
def setRootVal(self,obj):
self.key = obj
def getRootVal(self):
return self.key
def add_to_tree(alist,start,end):
if end
mid=(start+end)/2
n=BinaryTree(mid)
n.insertLeft(add_to_tree(alist,start,mid-1))
n.insertRight(add_to_tree(alist,mid+1,end))
return n
def create_minimal_bst(alist):
return add_to_tree(alist,0,len(alist)-1)
alist=[2,5,7,9,12,14,21,33,43,55,67,88]
print create_minimal_bst(alist)