AVL Tree রোটেশন ও Binary Heap অপারেশনস গাইড
সংক্ষেপে মনে রাখুন
দ্রুত রিভিশনের জন্য মূল কথা
- LL, RR, LR ও RL রোটেশনের পার্থক্য ও প্রয়োগক্ষেত্র সহজে চিহ্নিত করা
- AVL ট্রির উচ্চতা h-এর জন্য সর্বনিম্ন নোড সংখ্যার ফর্মুলা প্রয়োগ করা
- অ্যারে থেকে O(n) সময়ে Build-Heap গঠনের কার্যপদ্ধতি ব্যাখ্যা করা
যেকোনো নন-এম্পটি বাইনারি ট্রিতে (ট্রিটি ফুল, কমপ্লিট, স্ট্রিক্ট হোক বা সাধারণ যেকোনো বাইনারি ট্রি হোক) লিফ নোড…
অনেকে ভুলবশত মনে করে এই সূত্রটি শুধুমাত্র Full বা Strictly Binary Tree-র জন্য খাটে। বাস্তবে এটি যেকোনো র্যান্ডম বাইনারি ট্রির জন্যই শতভাগ সত্য।
মূল ধারণা (Core Concepts)
AVL ট্রি হলো একটি সেলফ-ব্যালেন্সিং বাইনারি সার্চ ট্রি যেখানে প্রতিটি নোডের ব্যালেন্স ফ্যাক্টর $\text{BF} = \text{Height(Left)} - \text{Height(Right)} \in \{-1, 0, +1\}$।
৪টি রোটেশন (Rotations)
- LL Rotation (Single Right Rotation): বাম সন্তানের বামে নোড ঢুকলে রুটে ডানে ঘোরানো হয়।
- RR Rotation (Single Left Rotation): ডান সন্তানের ডানে নোড ঢুকলে রুটে বামে ঘোরানো হয়।
- LR Rotation (Double Rotation): বাম সন্তানের ডানে নোড ঢুকলে প্রথমে বাম সন্তানে Left Rotation, তারপর রুটে Right Rotation।
- RL Rotation (Double Rotation): ডান সন্তানের বামে নোড ঢুকলে প্রথমে ডান সন্তানে Right Rotation, তারপর রুটে Left Rotation।
বাইনারি হিপের ইনডেক্সিং (0-Indexed Array)
- নোড $i$-এর প্যারেন্ট: $\lfloor (i - 1) / 2 \rfloor$
- বাম সন্তান: $2i + 1$
- ডান সন্তান: $2i + 2$
> ⚡ ৫-সেকেন্ড শর্টকাট (Exam Shortcut): > একটি অগোছালো অ্যারে থেকে ক্রমান্বয়ে উপাদান ইনসার্ট করলে হিপ তৈরিতে $O(n \log n)$ সময় লাগে; কিন্তু নিচের স্তর থেকে Bottom-up Heapify করলে মোট সময় লাগে মাত্র $O(n)$!
> ⚠️ পরীক্ষার ফাঁদ (Exam Trap): > পরীক্ষায় জিজ্ঞেস করা হয়: "উচ্চতা $h$ বিশিষ্ট AVL ট্রিতে সর্বনিম্ন নোড সংখ্যা কত?" মনে রাখবেন: $N(0) = 1, N(1) = 2, N(h) = N(h-1) + N(h-2) + 1$ (ফিবোনাচ্চি ধারার অনুরূপ)। $2^h - 1$ হলো সাধারণ বাইনারি ট্রির সর্বনিম্ন নয় বরং ফুল ট্রির নোড সংখ্যা!
পরের ধাপ
এই টপিকে ৫টি প্রশ্ন অনুশীলন করুন
পড়া মনে আছে কি না, ছোট একটি সেটে দেখে নিন। প্রতিটি উত্তরের সাথে ব্যাখ্যা থাকবে, আর ভুল প্রশ্নগুলো রিভিশনের তালিকায় যাবে