Implementación de una cola usando una matriz Ejercicio C# - Curso de Programación C# (C Sharp)

 Ejercicio

Implementación de una cola usando una matriz

 Objetivo

Implementación de una cola

 Código de Ejemplo

// Importing necessary namespace for basic functionalities
using System; // For basic functionalities like Console

// Class that implements a Queue using an array
class Queue
{
    private int[] queueArray; // Array to hold the queue elements
    private int front;        // Index for the front of the queue
    private int rear;         // Index for the rear of the queue
    private int capacity;     // Maximum capacity of the queue
    private int size;         // Current size of the queue

    // Constructor to initialize the queue with a given capacity
    public Queue(int capacity)
    {
        this.capacity = capacity;          // Set the queue's maximum capacity
        queueArray = new int[capacity];    // Initialize the array to hold the queue elements
        front = 0;                         // Front of the queue is initially at index 0
        rear = -1;                         // Rear of the queue is initially empty
        size = 0;                          // The queue is initially empty
    }

    // Method to add an element to the queue
    public void Enqueue(int element)
    {
        if (size == capacity) // Check if the queue is full
        {
            Console.WriteLine("Queue is full! Cannot enqueue.");
            return;
        }
        rear = (rear + 1) % capacity; // Circular increment of the rear index
        queueArray[rear] = element;   // Add the new element to the rear of the queue
        size++;                       // Increase the size of the queue
        Console.WriteLine($"Enqueued: {element}");
    }

    // Method to remove an element from the queue
    public void Dequeue()
    {
        if (size == 0) // Check if the queue is empty
        {
            Console.WriteLine("Queue is empty! Cannot dequeue.");
            return;
        }
        int dequeuedElement = queueArray[front]; // Get the element at the front of the queue
        front = (front + 1) % capacity; // Circular increment of the front index
        size--; // Decrease the size of the queue
        Console.WriteLine($"Dequeued: {dequeuedElement}");
    }

    // Method to display all elements in the queue
    public void DisplayQueue()
    {
        if (size == 0) // Check if the queue is empty
        {
            Console.WriteLine("Queue is empty.");
            return;
        }

        Console.WriteLine("Queue contents:");
        int current = front;
        for (int i = 0; i < size; i++)
        {
            Console.WriteLine(queueArray[current]); // Display each element
            current = (current + 1) % capacity; // Move to the next element (circular)
        }
    }
}

// Main program to demonstrate the Queue functionality
class Program
{
    static void Main(string[] args)
    {
        // Create a queue with a capacity of 5
        Queue queue = new Queue(5);

        // Menu to allow user to interact with the queue
        while (true)
        {
            Console.WriteLine("\nMenu:");
            Console.WriteLine("1. Enqueue an element");
            Console.WriteLine("2. Dequeue an element");
            Console.WriteLine("3. Display the queue");
            Console.WriteLine("4. Exit");
            Console.Write("Enter your choice: ");
            string choice = Console.ReadLine();

            if (choice == "1")
            {
                // Prompt user to enter an element to enqueue
                Console.Write("Enter an element to enqueue: ");
                int element = int.Parse(Console.ReadLine());
                queue.Enqueue(element); // Enqueue the element
            }
            else if (choice == "2")
            {
                // Dequeue an element
                queue.Dequeue(); // Dequeue the element
            }
            else if (choice == "3")
            {
                // Display the current queue
                queue.DisplayQueue(); // Show the current elements in the queue
            }
            else if (choice == "4")
            {
                // Exit the program
                break;
            }
            else
            {
                // Invalid choice
                Console.WriteLine("Invalid choice. Please try again.");
            }
        }
    }
}

Más ejercicios C# Sharp de Gestión Dinámica de Memoria

 Implementar una pila usando una matriz
Implementar una pila...
 Colecciones de colas
Cree una cola de cadenas, utilizando la clase Queue que ya existe en la plataforma DotNet. Una vez creado, muestra todos los elementos almacenados ...
 Notación Polish inversa de pila de cola
Cree un programa que lea desde un archivo de texto una expresión en notación polaca inversa como, por ejemplo: 3 4 6 5 - + * 6 + (Resultado 21) ...
 ArrayList
Cree una lista de cadenas utilizando la clase ArrayList que ya existe en la plataforma DotNet. Una vez creado, muestra todos los elementos almacena...
 ArrayList duplicar un archivo de texto
Cree un programa que lea desde un archivo de texto y lo almacene en otro archivo de texto invirtiendo las líneas. Por lo tanto, un archivo de texto...
 Suma ilimitada
Cree un programa para permitir que el usuario ingrese una cantidad ilimitada de números. Además, pueden ingresar los siguientes comandos: "suma", par...
 ArrayList - Lector de archivos de texto
Entregue aquí su lector básico de archivos de texto. Este lector de archivos de texto siempre muestra 21 líneas del archivo de texto, y el usuario ...
 Hast Table - Diccionario
Entregue aquí su diccionario usando Hash Table...
 Paréntesis
Implementar una función para comprobar si una secuencia de paréntesis abierto y cerrado está equilibrada, es decir, si cada paréntesis abierto corresp...
 Mezclar y ordenar archivos
Cree un programa para leer el contenido de dos archivos diferentes y mostrarlo mezclado y ordenado alfabéticamente. Por ejemplo, si los archivos conti...
 ArrayList de puntos
Cree una estructura "Point3D", para representar un punto en el espacio 3-D, con coordenadas X, Y y Z. Cree un programa con un menú, en el que el us...
 Buscar en archivo
Cree un programa para leer un archivo de texto y pida al usuario oraciones para buscar en él. Leerá todo el archivo, lo almacenará en un ArrayList,...

Juan A. Ripoll - Tutoriales y Cursos de Programacion© 2025 Todos los derechos reservados.  Condiciones legales.