Untitled
unknown
plain_text
a year ago
1.5 kB
8
Indexable
#include <iostream>
#define MAX_SIZE 100
class ArrayQueue {
private:
int front, rear;
int arr[MAX_SIZE];
public:
ArrayQueue() {
front = -1;
rear = -1;
}
bool IsEmpty() {
return (front == -1 && rear == -1);
}
bool IsFull() {
return (rear == MAX_SIZE - 1);
}
void Enqueue(int x) {
if (IsFull()) {
std::cout << "Queue Overflow!" << std::endl;
return;
}
if (IsEmpty()) {
front = 0;
}
arr[++rear] = x;
std::cout << "Enqueued: " << x << std::endl;
}
void Dequeue() {
if (IsEmpty()) {
std::cout << "Queue Underflow!" << std::endl;
return;
}
std::cout << "Dequeued: " << arr[front] << std::endl;
if (front == rear) {
front = rear = -1; // Reset queue
} else {
front++;
}
}
int Peek() {
if (IsEmpty()) {
std::cout << "Queue is empty!" << std::endl;
return -1;
}
return arr[front];
}
};
int main() {
ArrayQueue q;
q.Enqueue(10);
q.Enqueue(20);
q.Enqueue(30);
std::cout << "Front element: " << q.Peek() << std::endl;
q.Dequeue();
q.Dequeue();
q.Dequeue();
q.Dequeue(); // Attempt to dequeue from empty queue
return 0;
}
Editor is loading...
Leave a Comment