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):
if self.root is None:
self.root = Node(value)
else:
self._insert(self.root, value)
def _insert(self, current, value):
if value < current.value:
if current.left is None:
current.left = Node(value)
else:
self._insert(current.left, value)
else:
if current.right is None:
current.right = Node(value)
else:
self._insert(current.right, value)
def inorder(self, node, result=None):
if result is None:
result = []
if node:
self.inorder(node.left, result)
result.append(node.value)
self.inorder(node.right, result)
return result
# Example usage
bst = BST()
bst.insert(10)
bst.insert(5)
bst.insert(15)
bst.insert(7)
bst.insert(2)
print(bst.inorder(bst.root))