Table of Contents

    SEMESTER – II Unit – 1: Section 5: Data Structure: Queue

    Data Structure: Queue (Operations, Applications, Circular and Priority Queue)

    Queue হলো একটি Linear Data Structure যেখানে ডেটা একটি নির্দিষ্ট নিয়মে সংরক্ষণ এবং অপসারণ করা হয়। এই নিয়মকে বলা হয় FIFO (First In First Out)


    ১. Queue কী?

    Queue হলো এমন একটি ডেটা স্ট্রাকচার যেখানে প্রথমে যে ডেটা ঢোকে (insert), সেটাই প্রথমে বের হয় (delete)।

    উদাহরণ:

    
    Front → 10  20  30 ← Rear
    

    এখানে 10 প্রথমে বের হবে।


    ২. Queue-এর বৈশিষ্ট্য

    • ✔ FIFO principle অনুসরণ করে
    • ✔ Front থেকে delete হয়
    • ✔ Rear থেকে insert হয়

    ৩. Queue Operations

    ✔ Enqueue (Insert)

    Queue-এ নতুন element যোগ করার প্রক্রিয়া।

    
    Enqueue(40)
    
    Front → 10  20  30  40 ← Rear
    

    ✔ Dequeue (Delete)

    Queue থেকে element বের করার প্রক্রিয়া।

    
    Dequeue()
    
    Front → 20  30  40 ← Rear
    

    ৪. অন্যান্য Operation

    • Peek → Front element দেখা
    • isEmpty() → Queue খালি কিনা check
    • isFull() → Queue পূর্ণ কিনা check

    ৫. Queue Implementation (Array ব্যবহার করে)

    
    #include <stdio.h>
    #define MAX 5
    
    int queue[MAX];
    int front = -1, rear = -1;
    
    void enqueue(int value) {
        if(rear == MAX-1) {
            printf("Queue Overflow\n");
        } else {
            if(front == -1) front = 0;
            queue[++rear] = value;
        }
    }
    
    void dequeue() {
        if(front == -1 || front > rear) {
            printf("Queue Underflow\n");
        } else {
            front++;
        }
    }
    

    ৬. Queue-এর Applications

    • ✔ CPU Scheduling
    • ✔ Printer queue
    • ✔ Call center system
    • ✔ Ticket booking system
    • ✔ BFS (Graph traversal)

    ৭. Circular Queue

    Circular Queue-এ শেষ position থেকে আবার শুরুতে যাওয়া যায়।

    Structure:

    
    [10] [20] [30]
      ↑         ↓
      ←─────────
    

    উপকারিতা:

    • ✔ Memory efficient
    • ✔ Empty space reuse করা যায়

    ৮. Priority Queue

    Priority Queue-এ element-এর priority অনুযায়ী data process হয়।

    উদাহরণ:

    
    Priority:
    (High) 30 → 20 → 10 (Low)
    

    এখানে 30 আগে process হবে।


    ৯. Queue vs Stack

    বিষয় Queue Stack
    Rule FIFO LIFO
    Insert Rear Top
    Delete Front Top

    ১০. বাস্তব জীবনের উদাহরণ

    • Queue → ব্যাংকের লাইন
    • Circular Queue → Round-robin scheduling
    • Priority Queue → Emergency patient treatment

    উপসংহার

    Queue একটি গুরুত্বপূর্ণ data structure যা FIFO principle অনুসরণ করে। এটি real-life systems যেমন scheduling এবং queue management-এ ব্যাপকভাবে ব্যবহৃত হয়।


    Quick Revision

    • Queue → FIFO structure
    • Enqueue → data যোগ করা
    • Dequeue → data বের করা
    • Circular Queue → loop structure
    • Priority Queue → priority অনুযায়ী কাজ