কম্পিউটার টিউটোরিয়াল

ডেটা স্ট্রাকচারে কিউ অপারেশন


কিউ হল ফার্স্ট ইন ফার্স্ট আউট ডেটা স্ট্রাকচার। কিউ বিভিন্ন জায়গায় ব্যবহৃত হয় গ্রাফ ট্রাভার্সাল অ্যালগরিদম ব্রেডথ ফার্স্ট সার্চ ইত্যাদিতে। কিউর কিছু প্রিমিটিভ অপারেশন রয়েছে। এখানে আমরা কিউর সেই অপারেশনগুলো দেখব এবং কিউ ADT ব্যবহার করে একটি উদাহরণ দেখব।

ADT (অবস্ট্রাক্ট ডেটা টাইপ) হল ডেটা টাইপের একটি বিশেষ ধরন, যেসের আচরণ একটি ভ্যালু সেট এবং অপারেশন সেট দ্বারা ডিফাইন করা হয়। "Abstract" শব্দটি ব্যবহৃত হয় কারণ আমরা এই ডেটা টাইপগুলো ব্যবহার করতে পারি, বিভিন্ন অপারেশন পারফর্ম করতে পারি। কিন্তু সেসব অপারেশন কিভাবে কাজ করে সেটি ইউজার থেকে সম্পূর্ণ লুকিয়ে থাকে। ADT প্রিমিটিভ ডেটা টাইপ দিয়ে তৈরি হয়, কিন্তু অপারেশন লজিক লুকিয়ে থাকে।

কিউ ADT-এর কিছু অপারেশন বা ফাংশন নিচে -

  • isFull(), এটি চেক করতে ব্যবহৃত হয় কিউ ফুল কিনা
  • isEmpty(), এটি চেক করতে ব্যবহৃত হয় কিউ খালি কিনা
  • enqueue(x), এটি x কে কিউর শেষে পুশ করতে ব্যবহৃত হয়
  • delete(), এটি কিউর ফ্রন্ট এন্ড থেকে একটি এলিমেন্ট ডিলিট করতে ব্যবহৃত হয়
  • front(), এটি কিউর ফ্রন্টমোস্ট এলিমেন্ট পাওয়ার জন্য ব্যবহৃত হয়
  • size(), এই ফাংশন কিউতে উপস্থিত এলিমেন্টের সংখ্যা পাওয়ার জন্য ব্যবহৃত হয়

উদাহরণ

#include 
#include 
using namespace std;
main() {
    queue que;
    if(que.empty()){
        cout << "Queue is empty" << endl;
    } else {
        cout << "Queue is not empty" << endl;
    }
    //insert elements into queue
    que.push(10);
    que.push(20);
    que.push(30);
    que.push(40);
    que.push(50);
    cout << "Size of the queue: " << que.size() << endl;
    //delete and dispay elements
    while(!que.empty()) {
        int item = que.front(); // read element from first position
        que.pop();
        cout << item << " ";
    }
}

আউটপুট

Queue is empty
Size of the queue: 5
10 20 30 40 50
  1. করেসপন্ডেন্স ভিত্তিক ডেটা স্ট্রাকচার

  2. ডেটা স্ট্রাকচারে মিনিমাম স্প্যানিং ট্রি

  3. ডেটা স্ট্রাকচারে বাইনারি ট্রি রিপ্রেজেন্টেশন

  4. ডেটা স্ট্রাকচারে অ্যামোর্টাইজড টাইম কমপ্লেক্সিটি