Stack ও Queue: মৌলিক ধারণা
সংক্ষেপে মনে রাখুন
দ্রুত রিভিশনের জন্য মূল কথা
- Stack ও Queue-এর পার্থক্য বলতে পারা
- push/pop ও enqueue/dequeue-এর complexity জানা
- বাস্তব ব্যবহার চিনতে পারা
অ্যারে ভিত্তিক সার্কুলার কিউতে সাইজ N হলে ফুল (Full) এবং ফাঁকা (Empty) অবস্থার মধ্যে পার্থক্য করতে ১টি স্লট ইচ…
N সাইজের অ্যারেতে N টি উপাদানই রাখা যাবে বলে ভাবা। ফাঁকা স্লট না রাখলে front == rear কন্ডিশন কিউ ফাঁকা নাকি কিউ সম্পূর্ণ পূর্ণ তা আলাদা করতে পারে না (যদি আলাদা উপাদান কাউন্টার ভেরিয়েবল না রাখা হয়)।
Stack (স্ট্যাক)
Stack একটি linear data structure যেখানে উপাদান যোগ (push) ও অপসারণ (pop) একই প্রান্তে (top) হয়। তাই এটি LIFO (Last In, First Out) নীতি মেনে চলে।
- push, pop, peek: প্রতিটি O(1)
- ব্যবহার: function call stack, undo, expression evaluation, DFS
Queue (কিউ)
Queue-তে এক প্রান্তে (rear) যোগ এবং অন্য প্রান্ত (front) থেকে অপসারণ হয়। এটি FIFO (First In, First Out) নীতি মেনে চলে।
- enqueue, dequeue: প্রতিটি O(1) (সঠিক বাস্তবায়নে)
- ব্যবহার: BFS, CPU scheduling, printer queue
int stack[100], top = -1;
void push(int x) { stack[++top] = x; }
int pop(void) { return stack[top--]; }মনে রাখুন
পরীক্ষায় প্রায়ই জিজ্ঞাসা করা হয় কোন সমস্যায় কোন structure লাগে: recursion/undo → Stack, স্তরভিত্তিক ভিজিট/সারি → Queue।
পরের ধাপ
এই টপিকে ৫টি প্রশ্ন অনুশীলন করুন
পড়া মনে আছে কি না, ছোট একটি সেটে দেখে নিন। প্রতিটি উত্তরের সাথে ব্যাখ্যা থাকবে, আর ভুল প্রশ্নগুলো রিভিশনের তালিকায় যাবে