Chapter 8DSA (Data Structures & Algorithms)~1 min read
Trees आणि Binary Search Tree
Hierarchical Data Structures
Tree हे hierarchical data structure आहे. Binary Tree मध्ये प्रत्येक node ला जास्तीत जास्त 2 children असतात. Binary Search Tree (BST) मध्ये left < parent < right — हे property search O(log n) करतं.
BST Node आणि Insert
python
class TreeNode:
def __init__(self, val):
self.val = val
self.left = None
self.right = None
class BST:
def __init__(self):
self.root = None
def insert(self, val):
self.root = self._insert(self.root, val)
def _insert(self, node, val):
if not node:
return TreeNode(val)
if val < node.val:
node.left = self._insert(node.left, val)
elif val > node.val:
node.right = self._insert(node.right, val)
return node
def search(self, val):
return self._search(self.root, val)
def _search(self, node, val):
if not node:
return False
if val == node.val:
return True
elif val < node.val:
return self._search(node.left, val)
else:
return self._search(node.right, val)Tree Traversals
python
def inorder(node): # Left → Root → Right (sorted order!)
if node:
inorder(node.left)
print(node.val, end=" ")
inorder(node.right)
def preorder(node): # Root → Left → Right
if node:
print(node.val, end=" ")
preorder(node.left)
preorder(node.right)
def postorder(node): # Left → Right → Root
if node:
postorder(node.left)
postorder(node.right)
print(node.val, end=" ")
# BST: 5 inserted, then 3, 7, 1, 4
# Inorder: 1 3 4 5 7 (sorted!)💡
BST Inorder traversal नेहमी sorted order मध्ये elements देतो. हे property अनेक interview problems मध्ये काम येतं.
✅ Key Points — लक्षात ठेवा
- ▸BST: left < parent < right
- ▸Search/Insert: O(log n) average, O(n) worst
- ▸Inorder traversal = sorted order
- ▸Height-balanced BST (AVL, Red-Black) — O(log n) guaranteed
- ▸Level-order traversal — Queue वापरतो (BFS)
0/10 chapters पूर्ण