Welcome to collectivesolver - Programming & Software Q&A with code examples. A website with trusted programming answers. All programs are tested and work.

Contact: aviboots(AT)netvision.net.il

Buy a domain name - Register cheap domain names from $0.99 - Namecheap

Scalable Hosting That Grows With You

Secure & Reliable Web Hosting, Free Domain, Free SSL, 1-Click WordPress Install, Expert 24/7 Support

Semrush - keyword research tool

Boost your online presence with premium web hosting and servers

Disclosure: My content contains affiliate links.

39,845 questions

51,766 answers

573 users

How to create a queue, then enqueue and dequeue elements in C++

2 Answers

0 votes
#include <iostream>

// Define the maximum size of the queue
#define MAX_SIZE 128

class Queue {
private:
    int arr[MAX_SIZE]; // Array to store queue elements
    int first;         // Index of the first element
    int last;          // Index of the last element
    int size;          // Current size of the queue

public:
    // Constructor to initialize the queue
    Queue() {
        first = 0;
        last = -1;
        size = 0;
    }

    // Function to add an element to the queue (enqueue)
    void enqueue(int value) {
        if (size == MAX_SIZE) {
            std::cout << "Queue is full! Cannot enqueue " << value << std::endl;
            return;
        }
        last = (last + 1) % MAX_SIZE;
        arr[last] = value;
        size++;
        std::cout << "Enqueued: " << value << std::endl;
    }

    // Function to remove an element from the queue (dequeue)
    void dequeue() {
        if (size == 0) {
            std::cout << "Queue is empty! Cannot dequeue.\n";
            return;
        }
        std::cout << "Dequeued: " << arr[first] << std::endl;
        first = (first + 1) % MAX_SIZE; 
        size--;
    }

    // Function to get the first element of the queue
    int peek() {
        if (size == 0) {
            std::cout << "Queue is empty! No first element.\n";
            return -1; // Return an invalid value
        }
        return arr[first];
    }

    // Function to check if the queue is empty
    bool isEmpty() {
        return size == 0;
    }

    // Function to get the current size of the queue
    int getSize() {
        return size;
    }
    
    // Add this inside the Queue class
    void printQueue() {
        if (size == 0) {
            std::cout << "Queue is empty.\n";
            return;
        }
    
        std::cout << "Queue contents: ";
        for (int i = 0; i < size; ++i) {
            int index = (first + i) % MAX_SIZE;
            std::cout << arr[index] << " ";
        }
        std::cout << std::endl;
    }

};

int main() {
    Queue q;

    // Enqueue elements
    q.enqueue(10);
    q.enqueue(20);
    q.enqueue(30);

    // Display the first element
    std::cout << "\nfirst element: " << q.peek() << "\n\n";
    
    q.printQueue();
    std::cout << "\n";

    // Dequeue elements
    q.dequeue();
    q.dequeue();

    // Check if the queue is empty
    if (q.isEmpty()) {
        std::cout << "\nQueue is empty.\n\n";
    } else {
        std::cout << "\nQueue is not empty. Current size: " << q.getSize() << "\n\n";
    }

    // Enqueue more elements
    q.enqueue(40);
    q.enqueue(50);
    
    q.printQueue();
    std::cout << "\n";

    // Display the first element 
    std::cout << "first element: " << q.peek() << "\n\n";
}



/*
run:

Enqueued: 10
Enqueued: 20
Enqueued: 30

first element: 10

Queue contents: 10 20 30 

Dequeued: 10
Dequeued: 20

Queue is not empty. Current size: 1

Enqueued: 40
Enqueued: 50
Queue contents: 30 40 50 

first element: 30

*/

 



answered Aug 22, 2025 by avibootz
edited Aug 22, 2025 by avibootz
0 votes
#include <iostream>
#include <queue>

void printQueue(std::queue<int> q) {
    std::cout << "Queue contents: ";
    while (!q.empty()) {
        std::cout << q.front() << " ";
        q.pop();
    }
    std::cout << std::endl;
}

int main() {
    std::queue<int> myQueue;

    myQueue.push(10);
    myQueue.push(20);
    myQueue.push(30);

    std::cout << "Front element: " << myQueue.front() << std::endl;
    std::cout << "Back element: " << myQueue.back() << std::endl;

    // Print the queue without modifying the original
    printQueue(myQueue);

    // Dequeue and print
    while (!myQueue.empty()) {
        std::cout << "Dequeuing: " << myQueue.front() << std::endl;
        myQueue.pop();
    }

    if (myQueue.empty()) {
        std::cout << "The queue is now empty." << std::endl;
    }

    return 0;
}




/*
run:

Front element: 10
Back element: 30
Queue contents: 10 20 30 
Dequeuing: 10
Dequeuing: 20
Dequeuing: 30
The queue is now empty.

*/


 



answered Aug 22, 2025 by avibootz
...