Example #1
0
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()
Example #2
0
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();
Example #3
0
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")