lab_assignment_3
lab_assignment_3
Code :
#include<iostream>
class CircularQueue {
private:
int front, rear;
int max;
int size;
int* queueArray;
bool isFull;
public:
CircularQueue(int maxSize) {
max = maxSize;
size = 0;
front = -1;
rear = -1;
queueArray = new int[max];
isFull = false;
}
~CircularQueue() {
delete[] queueArray;
}
bool is_empty() {
return size == 0;
}
bool is_full() {
return isFull;
}
void dequeue() {
if (!is_empty()) {
front = (front + 1) % max; // Circular increment
int element = queueArray[front];
size--;
isFull = false; // Reset the flag since an element is dequeued
std::cout << "Dequeued: " << element << std::endl;
} else {
std::cout << "Queue is empty. Cannot dequeue." << std::endl;
}
}
void display() {
if (!is_empty()) {
std::cout << "Elements of the circular queue: ";
int i = front;
do{
i = (i + 1) % max; // Circular increment
std::cout << queueArray[i] << " ";
}
while (i != rear);
std::cout << std::endl;
} else {
std::cout << "Queue is empty." << std::endl;
}
}
};
int main() {
CircularQueue cq(3); // Create a circular queue of size 3
cq.enqueue(12);
cq.enqueue(3);
cq.enqueue(4);
cq.dequeue();
cq.display();
cq.enqueue(9);
cq.display();
cq.enqueue(10);
cq.display();
return 0;
}
Output :