Untitled
unknown
c_cpp
2 years ago
1.6 kB
3
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;
}
Editor is loading...
Leave a Comment