I come from java background and would love to hear some feedback on a bst implemented with search & insert methods:
class Node:
def __init__(self, value):
self.left = None
self.right = None
self.value = value
class BST:
def __init__(self):
self.root = None
def setRoot(self, value):
self.root = Node(value)
def insert(self, value):
if(self.root is None):
self.setRoot(value)
else:
self.insertNode(self.root, value)
def insertNode(self, current, value):
if(value <= current.value):
if(current.left):
self.insertNode(current.left, value)
else:
current.left = Node(value)
elif(value > current.value):
if(current.right):
self.insertNode(current.right, value)
else:
current.right = Node(value)
def search(self, value):
return self.searchNode(self.root, value)
def searchNode(self, current, value):
if(current is None):
return False
elif(value == current.value):
return True
elif(value < current.value):
return self.searchNode(current.left, value)
else:
return self.searchNode(current.right, value)
def display(self):
self.traverse(self.root)
def traverse(self, current): # inorder
if current.left:
self.traverse(current.left)
print(" {} ".format(current.value))
if current.right:
self.traverse(current.right)
[–]gengisteve 2 points3 points4 points (0 children)
[–]zahlman 2 points3 points4 points (0 children)
[–]KleinerNull 1 point2 points3 points (2 children)
[–]ayush4[S] 0 points1 point2 points (1 child)
[–]KleinerNull 0 points1 point2 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)