4678-Assignment-3
4678-Assignment-3
aSSIgnMEnT # 3
LInEar qUEUE IMpLEMEnTaTIon
SoUrcE coDE:
#include<iostream>
using namespace std;
class queue {
int *arr;
int front, rear, maxsize;
public:
queue() {
maxsize = 50;
arr = new int[maxsize];
front = -1;
rear = -1;
}
bool isfull() {
if (rear == maxsize - 1) {
return true;
}
else {
return false;
}
}
bool isempty() {
int peek() {
if (isempty()) {
cout << "queue is empty (underflow)." << endl;
return -1;
}
else {
return arr[front];
}
}
int totalelements() {
if (isempty()) {
cout << "queue is empty." << endl;
return -1;
}
return rear - front + 1;
}
void displayqueue() {
if (isempty()) {
cout << "queue is empty." << endl;
return;
}
cout << "queue elements: ";
for (int i = front; i <= rear; i++) {
cout << arr[i] << " ";
}
cout << endl;
}
};
int main() {
queue q;
int choice, data;
do {
cout << "\nqueue operations:" << endl;
cout << "1. enqueue" << endl;
cout << "2. dequeue" << endl;
cout << "3. peek" << endl;
cout << "4. check if empty" << endl;
cout << "5. check if full" << endl;
cout << "6. total elements" << endl;
cout << "7. display queue" << endl;
cout << "8. exit" << endl;
cout << "enter your choice: ";
cin >> choice;
switch (choice) {
case 1:
cout << "enter data to enqueue: ";
cin >> data;
q.enqueue(data);
break;
case 2:
data = q.dequeue();
if (data != -1) {
cout << "dequeued: " << data << endl;
}
break;
case 3:
data = q.peek();
if (data != -1) {
cout << "front element: " << data << endl;
}
break;
case 4:
if (q.isempty()) {
cout << "queue is empty." << endl;
}
else {
cout << "queue is not empty." << endl;
}
break;
case 5:
if (q.isfull()) {
cout << "queue is full." << endl;
}
else {
cout << "queue is not full." << endl;
}
break;
case 6:
data = q.totalelements();
if (data != -1) {
cout << "total elements in queue: " << q.totalelements() << endl;
}
break;
case 7:
q.displayqueue();
break;
case 8:
cout << "exiting program." << endl;
break;
default:
cout << "invalid choice! please enter a valid option." << endl;
}
} while (choice != 8);
return 0;
}
oUTpUT: