class BST(object): def __init__(self): self.rootNode = None def insert(self, data): if not self.rootNode: self.rootNode = Node(data) else: self.rootNode.insert(data) def remove(self, dataToRemove): if self.rootNode: if self.rootNode.data == dataToRemove: tempNode = Node(None) tempNode.leftChild = self.rootNode self.rootNode.remove(dataToRemove, tempNode) else: self.rootNode.remove(dataToRemove, None) def getMax(self): if self.rootNode: return self.rootNode.getMax() def getMin(self): if self.rootNode: return self.rootNode.getMin() def traverse(self): if self.rootNode: self.rootNode.traverseInOrder()
class BinarySearchTree(object): def __init__(self): self.rootNode = None; def insert(self,data): if( not self.rootNode ): self.rootNode = Node(data); else: self.rootNode.insert(data); def remove(self, dataToRemove): if( self.rootNode ): if( self.rootNode.data == dataToRemove ): tempNode = Node(None); tempNode.leftChild = self.rootNode; self.rootNode.remove(dataToRemove,tempNode); else: self.rootNode.remove(dataToRemove,None); def getMax(self): maxNode = self.rootNode; while maxNode.rightChild: maxNode = maxNode.rightChild; return maxNode.data; def getMin(self): minNode = self.rootNode; while minNode.leftChild: minNode = minNode.leftChild; return minNode.data; def traverseInOrder(self): if self.rootNode: self.rootNode.traverseInOrder();
class BST(object): def __init__(self): self.root = None def insert(self, data): if not self.root: self.root = Node(data) else: self.root.insert(data) def remove(self, dataToRemove): if self.root is not None: if self.root.data == dataToRemove: tempNode = Node(None) tempNode.leftChild = self.root self.root.remove(dataToRemove, tempNode) else: self.root.remove(dataToRemove, None) def getMax(self): if self.root: return self.root.getMax() def getMin(self): if self.root: return self.root.getMin() def traverseInOrder(self): if self.root: self.root.traverseInOrder() def getNode(self, data): if self.root: self.root.getNode(data) else: print("The tree is not set yet")