DSA Binary Search Trees
Language: Data Structures
class Node:
def __init__(self, value):
self.value = value
self.left = None
self.right = None
class BST:
def __init__(self):
self.root = None
def insert(self, value):
self.root = self._insert(self.root, value)
def _insert(self, node, value):
if node is None:
return Node(value)
if value < node.value:
node.left = self._insert(node.left, value)
elif value > node.value:
node.right = self._insert(node.right, value)
# equal values are ignored - no duplicates
return node
def search(self, value):
return self._search(self.root, value)
def _search(self, node, value):
if node is None:
return False
if value == node.value:
return True
if value < node.value:
return self._search(node.left, value)
return self._search(node.right, value)
tree = BST()
for n in [8, 3, 10, 1, 6, 14, 4, 7, 13]:
tree.insert(n)
print(tree.search(6)) # True
print(tree.search(11)) # FalseOutput
Click Run to execute this code.