Skip to content

Instantly share code, notes, and snippets.

@Anubhav722
Forked from jakemmarsh/binarySearchTree.py
Created March 7, 2019 19:42
Show Gist options
  • Select an option

  • Save Anubhav722/0230ed5aad9665e66b98f247cd5d8a7b to your computer and use it in GitHub Desktop.

Select an option

Save Anubhav722/0230ed5aad9665e66b98f247cd5d8a7b to your computer and use it in GitHub Desktop.

Revisions

  1. @jakemmarsh jakemmarsh revised this gist Jan 9, 2014. 1 changed file with 14 additions and 7 deletions.
    21 changes: 14 additions & 7 deletions binarySearchTree.py
    Original file line number Diff line number Diff line change
    @@ -26,15 +26,22 @@ def setRoot(self, val):
    self.root = Node(val)

    def insert(self, val):
    currentNode = self.root
    if(currentNode is None):
    if(self.root is None):
    self.setRoot(val)
    elif(val <= currentNode.val):
    currentNode.leftChild = Node(val)
    elif(val > currentNode.val):
    currentNode.rightChild = Node(val)
    else:
    currentNode.val = val
    self.insertNode(self.root, val)

    def insertNode(self, currentNode, val):
    if(val <= currentNode.val):
    if(currentNode.leftChild):
    self.insertNode(currentNode.leftChild, val)
    else:
    currentNode.leftChild = Node(val)
    elif(val > currentNode.val):
    if(currentNode.rightChild):
    self.insertNode(currentNode.rightChild, val)
    else:
    currentNode.rightChild = Node(val)

    def find(self, val):
    return self.findNode(self.root, val)
  2. @jakemmarsh jakemmarsh revised this gist Jan 5, 2014. 1 changed file with 1 addition and 0 deletions.
    1 change: 1 addition & 0 deletions binarySearchTree.py
    Original file line number Diff line number Diff line change
    @@ -3,6 +3,7 @@ def __init__(self, val):
    self.val = val
    self.leftChild = None
    self.rightChild = None

    def get(self):
    return self.val

  3. @jakemmarsh jakemmarsh created this gist Jan 5, 2014.
    49 changes: 49 additions & 0 deletions binarySearchTree.py
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,49 @@
    class Node:
    def __init__(self, val):
    self.val = val
    self.leftChild = None
    self.rightChild = None
    def get(self):
    return self.val

    def set(self, val):
    self.val = val

    def getChildren(self):
    children = []
    if(self.leftChild != None):
    children.append(self.leftChild)
    if(self.rightChild != None):
    children.append(self.rightChild)
    return children

    class BST:
    def __init__(self):
    self.root = None

    def setRoot(self, val):
    self.root = Node(val)

    def insert(self, val):
    currentNode = self.root
    if(currentNode is None):
    self.setRoot(val)
    elif(val <= currentNode.val):
    currentNode.leftChild = Node(val)
    elif(val > currentNode.val):
    currentNode.rightChild = Node(val)
    else:
    currentNode.val = val

    def find(self, val):
    return self.findNode(self.root, val)

    def findNode(self, currentNode, val):
    if(currentNode is None):
    return False
    elif(val == currentNode.val):
    return True
    elif(val < currentNode.val):
    return self.findNode(currentNode.leftChild, val)
    else:
    return self.findNode(currentNode.rightChild, val)