একটি সিস্টেম যেখানে আইটেমগুলো এক প্রান্তে সংযোজিত হয় কিন্তু অন্য প্রান্ত থেকে সরানো হয় তার নাম-
কArray
খLinked list
গStack
ঘQueue✓
ব্যাখ্যা
সঠিক উত্তর: (ঘ) Queue
ডেটা স্ট্রাকচারের প্রাথমিক ধারণা সম্পর্কিত প্রশ্ন।
**Queue সম্পর্কে বিস্তারিত তথ্য:**
— **সংজ্ঞা**: Queue হলো একটি রৈখিক ডেটা স্ট্রাকচার যেখানে ডেটা আইটেমগুলোকে এক প্রান্তে সংযোজন (Enqueue) করা হয় এবং অন্য প্রান্ত থেকে অপসারণ (Dequeue) করা হয়। এটি **FIFO (First In First Out)** নীতির উপর ভিত্তি করে কাজ করে।
— **গঠন**: Queue-এর দুটি প্রধান অংশ রয়েছে:
1. **Front (পূর্ব প্রান্ত)**: যেখানে থেকে ডেটা অপসারণ করা হয়।
2. **Rear (পশ্চাৎ প্রান্ত)**: যেখানে ডেটা সংযোজন করা হয়।
— **অপারেশনসমূহ**:
- **Enqueue**: Rear প্রান্তে নতুন ডেটা যোগ করা।
- **Dequeue**: Front প্রান্ত থেকে ডেটা অপসারণ করা।
- **Peek/Front**: Front-এ অবস্থিত ডেটা দেখানো।
- **isEmpty**: Queue খালি কিনা তা পরীক্ষা করা।
- **isFull**: Queue পূর্ণ কিনা তা পরীক্ষা করা (স্থির আকারের ক্ষেত্রে)।
— **ব্যবহারিক প্রয়োগ**:
- প্রিন্টার সারি ব্যবস্থাপনা।
- CPU শিডিউলিং।
- কল সেন্টারে কল ম্যানেজমেন্ট।
- ইন্টারনেট ব্রাউজারে ট্যাব ব্যবস্থাপনা।
**বিভ্রান্তিকর বিকল্প বিশ্লেষণ:**
✗ ক) Array: Array হলো একটি স্থির আকারের ডেটা স্ট্রাকচার যেখানে ডেটা আইটেমগুলোকে নির্দিষ্ট সূচকের মাধ্যমে সংরক্ষণ করা হয়। এটি FIFO নীতি অনুসরণ করে না।
✗ খ) Linked list: Linked list হলো একটি গতিশীল ডেটা স্ট্রাকচার যেখানে ডেটা আইটেমগুলোকে নোডের মাধ্যমে সংযুক্ত করা হয়। এটি FIFO নীতি অনুসরণ করে না, তবে স্ট্যাক বা কিউ হিসেবে ব্যবহার করা যায়।
✗ গ) Stack: Stack হলো একটি ডেটা স্ট্রাকচার যেখানে ডেটা আইটেমগুলোকে এক প্রান্তে সংযোজন ও অপসারণ করা হয় (LIFO নীতি অনুসরণ করে)। এটি Queue-এর বিপরীত।
**উৎস:**
1. "Data Structures and Algorithms in C++" – Adam Drozdek
2. "Introduction to Algorithms" – Thomas H. Cormen
3. BCS Preliminary Exam Previous Year Question Bank (2010-2023)