Implementación básica de cola con operaciones de poner y quitar la cola en C++

En este ejercicio de C++, creará una estructura de datos de cola simple utilizando un array. Una cola es una estructura lineal que sigue el principio FIFO (primero en entrar, primero en salir). Esto significa que el primer elemento insertado en la cola es el primero en eliminarse.

El programa permite al usuario:
1. **Encolar**: Insertar un elemento al final de la cola.
2. **Desencolar**: Eliminar un elemento del frente de la cola.
3. **Mostrar**: Mostrar el contenido actual de la cola.

Este ejercicio es excelente para aprender los fundamentos de las colas y comprender cómo administrar punteros frontales y posteriores, al tiempo que se gestionan condiciones de desbordamiento y subdesbordamiento.

Grupo

Estructuras de Datos: Pilas y Colas en C++

Ojetivo

1. Defina una matriz de tamaño fijo para representar el almacenamiento de la cola.
2. Use dos variables para controlar la parte frontal y posterior de la cola.
3. Implemente una función para encolar elementos y comprobar si hay desbordamiento.
4. Implemente una función para retirar elementos de la cola y comprobar si hay desbordamiento.
5. Permita que el usuario interactúe con la cola mediante un menú de texto simple.

Cree una cola y realice operaciones de inserción y eliminación.

Ejemplo de Código C++

 Copiar Código C++
#include <iostream>  // Include input/output stream library

using namespace std;

#define MAX 5  // Define the maximum size of the queue

// Queue class definition
class Queue {
private:
    int arr[MAX];  // Array to store queue elements
    int front, rear;  // Pointers for front and rear positions

public:
    // Constructor to initialize queue
    Queue() {
        front = -1;
        rear = -1;
    }

    // Function to insert an element into the queue
    void enqueue(int value) {
        if (rear == MAX - 1) {
            cout << "Queue Overflow. Cannot enqueue " << value << endl;
        } else {
            if (front == -1) front = 0;  // Initialize front if it's the first element
            rear++;  // Move rear pointer
            arr[rear] = value;  // Store the value at rear position
            cout << "Enqueued " << value << " into the queue." << endl;
        }
    }

    // Function to remove an element from the queue
    void dequeue() {
        if (front == -1 || front > rear) {
            cout << "Queue Underflow. Nothing to dequeue." << endl;
        } else {
            cout << "Dequeued " << arr[front] << " from the queue." << endl;
            front++;  // Move front pointer forward
        }
    }

    // Function to display the contents of the queue
    void display() {
        if (front == -1 || front > rear) {
            cout << "Queue is empty." << endl;
        } else {
            cout << "Queue contents: ";
            for (int i = front; i <= rear; i++) {
                cout << arr[i] << " ";
            }
            cout << endl;
        }
    }
};

int main() {
    Queue q;  // Create a Queue object
    int choice, value;

    // Loop to show menu and perform queue operations
    do {
        cout << "\nQueue Operations Menu:\n";
        cout << "1. Enqueue\n";
        cout << "2. Dequeue\n";
        cout << "3. Display Queue\n";
        cout << "4. Exit\n";
        cout << "Enter your choice: ";
        cin >> choice;

        switch (choice) {
            case 1:
                cout << "Enter value to enqueue: ";
                cin >> value;
                q.enqueue(value);  // Call enqueue function
                break;
            case 2:
                q.dequeue();  // Call dequeue function
                break;
            case 3:
                q.display();  // Call display function
                break;
            case 4:
                cout << "Exiting program." << endl;
                break;
            default:
                cout << "Invalid choice. Please try again." << endl;
        }
    } while (choice != 4);  // Continue until the user chooses to exit

    return 0;  // End of program
}

 Salida

Queue Operations Menu:
1. Enqueue
2. Dequeue
3. Display Queue
4. Exit
Enter your choice: 1
Enter value to enqueue: 10
Enqueued 10 into the queue.

Queue Operations Menu:
1. Enqueue
2. Dequeue
3. Display Queue
4. Exit
Enter your choice: 1
Enter value to enqueue: 20
Enqueued 20 into the queue.

Queue Operations Menu:
1. Enqueue
2. Dequeue
3. Display Queue
4. Exit
Enter your choice: 3
Queue contents: 10 20

Queue Operations Menu:
1. Enqueue
2. Dequeue
3. Display Queue
4. Exit
Enter your choice: 2
Dequeued 10 from the queue.

Queue Operations Menu:
1. Enqueue
2. Dequeue
3. Display Queue
4. Exit
Enter your choice: 4
Exiting program.

Comparte este ejercicio C++

Más ejercicios de programación C++Estructuras de Datos: Pilas y Colas en C++

¡Explora el conjunto de ejercicios de programación en C++! Diseñados específicamente para principiantes, estos ejercicios te ayudarán a desarrollar una sólida comprensión de los fundamentos de C++. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte gradualmente a medida que adquieres confianza en la programación en C++.