hmax(n) ko maximum possible height maano. Ek path jo har node ko use kare, ek per level:
level 0: root (1 node)
level 1: 1 node
...
level n−1: 1 node
hmax(n)=n−1⇒worst-case op cost=O(n)
Kyun?n nodes aur ek node per level ke saath, aapko n levels chahiye, level 0 se n−1 tak, isliye sabse lamba path n−1 edges ka hoga. Koi bhi valid tree isse zyada oochi nahi ho sakti, kyunki height ≥n wali tree ko ≥n+1 nodes chahiye honge.
Ek binary tree mein level i mein zyada se zyada 2i nodes ho sakte hain (har node ke ≤2 children, har level par doubling). Saare n nodes ko h+1 full levels mein rakhne ke liye:
n≤20+21+⋯+2h=2h+1−1
Yeh geometric sum kyun? Level 0 mein 1=20, level 1 mein 2=21, ..., level h mein zyada se zyada 2h hain. Ratio 2 wali geometric series ka sum: ∑i=0h2i=2h+1−1.
Ek plain BST koi guarantee nahi deta. Agar aapka data sorted aata hai (bahut common — logs, IDs, time series!), aap silently O(n) trap mein gir jaate ho aur aapka "fast" tree ek slow linked list hai extra pointers ke saath.
Yeh h=O(logn) hamesha maintain karte hain insert/delete par restructuring (rotations) karke, input order se regardless.
Ek degenerate BST kaunsi simpler data structure ki tarah behave karta hai?
Ek linked list (O(n) search).
Recall Feynman: explain to a 12-year-old
Socho tum ek phone book mein koi naam dhundh rahe ho. Agar book sorted hai, tum beech mein flip karo aur turant aadha phenk do — yeh super fast hai. BST usi tarah kaam karna chahta hai: har step tree ka aadha phenk deta hai.
Lekin agar tum tree aise naam add karke banate ho jo already order mein hain (Anna, Bob, Carl, Dan...), toh tree ek lambi seedhi ladder ki tarah badhti hai, ek step at a time — kuch bhi nahi phenkta! Ab koi naam dhundhna matlab poori ladder chadhna, ek rung at a time. Yeh slow hai.
Isliye smart logon ne "balancing" invent ki: jab bhi ladder lean karna shuru kare, tree khud ko wapas ek acchi bushy shape mein shuffle kar leti hai, taaki tum hamesha aadha phenk sako. Hamesha fast!