C++ Queue Exercises: Find the minimum element of a queue
C++ Queue: Exercise-10 with Solution
Write a C++ program to find the minimum element of a queue.
Sample Solution:
C Code:
#include <iostream>
#include <map>
#include <cmath>
using namespace std;
const int MAX_SIZE = 100;
class Queue {
private:
int front; // Stores the front index of the queue
int rear; // Stores the rear index of the queue
int arr[MAX_SIZE]; // Array to hold queue elements
public:
Queue() {
front = -1; // Initialize front index to -1
rear = -1; // Initialize rear index to -1
}
bool isFull() {
return (rear == MAX_SIZE - 1); // Checks if the queue is full
}
bool isEmpty() {
return (front == -1 && rear == -1); // Checks if the queue is empty
}
void enqueue(int x) {
if (isFull()) {
cout << "Error: Queue is full" << endl; // Displays error if the queue is full
return;
}
if (isEmpty()) {
front = 0;
rear = 0;
} else {
rear++;
}
arr[rear] = x; // Adds an element to the rear of the queue
}
void dequeue() {
if (isEmpty()) {
cout << "Error: Queue is empty" << endl; // Displays error if the queue is empty
return;
}
if (front == rear) {
front = -1;
rear = -1;
} else {
front++;
}
}
int peek() {
if (isEmpty()) {
cout << "Error: Queue is empty" << endl; // Displays error if the queue is empty
return -1;
}
return arr[front]; // Returns the element at the front of the queue
}
void display() {
if (isEmpty()) {
cout << "Error: Queue is empty" << endl; // Displays error if the queue is empty
return;
}
cout << "Queue elements are: ";
for (int i = front; i <= rear; i++) {
cout << arr[i] << " "; // Displays all elements in the queue
}
cout << endl;
}
int find_minimum(Queue q) {
int min = q.peek(); // Initialize min with the first element of the queue
while (!q.isEmpty()) {
int curr = q.peek(); // Get the current element
if (curr < min) {
min = curr; // Update min if the current element is smaller
}
q.dequeue(); // Remove the element from the queue
}
return min; // Return the minimum element
}
};
int main() {
cout << "Initialize a Queue." << endl;
Queue q;
cout << "\nInsert some elements into the queue:" << endl;
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.enqueue(4);
q.enqueue(5);
q.display();
int min = q.find_minimum(q); // Find the minimum element in the queue
cout << "Minimum element of the said queue: " << min << endl;
cout << "\nInsert two more elements into the queue:" << endl;
q.enqueue(-6);
q.enqueue(0);
q.display();
min = q.find_minimum(q); // Find the minimum element again after inserting new elements
cout << "Minimum element of the said queue: " << min << endl;
return 0;
}
Sample Output:
Initialize a Queue. Insert some elements into the queue: Queue elements are: 1 2 3 4 5 Minimum element of the said queue: 1 Insert two more elements into the queue: Queue elements are: 1 2 3 4 5 -6 0 Minimum element of the said queue: -6
Flowchart:
CPP Code Editor:
Contribute your code and comments through Disqus.
Previous C++ Exercise: Find the maximum element of a queue.
Next C++ Exercise: Find the second highest element of a queue.
What is the difficulty level of this exercise?
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://www.w3resource.com/cpp-exercises/queue/cpp-queue-exercise-10.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics