Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 1
class TreeNode:
def __init__(self, key):
self.val = key self.left = None self.right = None
class BST: def __init__(self): self.root = None
def insert(self, key):
if not self.root: self.root = TreeNode(key) else: self._insert_recursive(self.root, key)
def _insert_recursive(self, node, key):
if key < node.val: if node.left: self._insert_recursive(node.left, key) else: node.left = TreeNode(key) else: if node.right: self._insert_recursive(node.right, key) else: node.right = TreeNode(key)
def search(self, key):
return self._search_recursive(self.root, key)
def _search_recursive(self, node, key):
if not node or node.val == key: return node if key < node.val: return self._search_recursive(node.left, key) return self._search_recursive(node.right, key)
def inorder_traversal(self): result = [] self._inorder_traversal_recursive(self.root, result)