Untitled

 avatar
unknown
c_cpp
a year ago
1.6 kB
1
Indexable
#include <iostream>
using namespace std;

class CircularQueue {
private:
    int capacity;
    int* queue;
    int front;
    int rear;

public:
    CircularQueue(int size) {
        capacity = size;
        queue = new int[size];
        front = rear = -1;
    }

    bool Check_Qunderflow() {
        return front == -1;
    }

    bool Check_Qoverflow() {
        return (rear + 1) % capacity == front;
    }

    void addQ(int item) {
        if (Check_Qoverflow()) {
            cout << "Queue is full. Cannot add more items." << endl;
        }
        else {
            if (front == -1) {
                front = 0;
            }
            rear = (rear + 1) % capacity;
            queue[rear] = item;
        }
    }

    int removeQ() {
        if (Check_Qunderflow()) {
            cout << "Queue is empty. Cannot remove item." << endl;
            return -1;
        }
        else {
            int removed_item = queue[front];
            if (front == rear) {
                front = rear = -1;
            }
            else {
                front = (front + 1) % capacity;
            }
            return removed_item;
        }
    }

};

int main() {
    CircularQueue cq(5);
    cout << cq.Check_Qunderflow() << endl; 
    cq.addQ(1);
    cq.addQ(2);
    cq.addQ(3);
    cout << cq.Check_Qoverflow() << endl;
    cout << cq.removeQ() << endl; 
    cout << cq.removeQ() << endl;
    cout << cq.removeQ() << endl;
    cout << cq.Check_Qunderflow() << endl; 

    return 0;
}
Leave a Comment