Implementación De Una Cola Personalizada En C#

En este ejercicio, deberá implementar una cola en C#. Una cola es una estructura de datos que sigue el principio FIFO (First In, First Out), lo que significa que el primer elemento en entrar es el primero en salir. En este ejercicio, deberá crear una clase para la cola, lo que le permitirá insertar elementos al final de la cola y eliminar elementos del principio. El objetivo de este ejercicio es familiarizarse con las estructuras de datos en C# y cómo administrarlas eficientemente.

Este ejercicio también le permitirá practicar la implementación de métodos clave como Enqueue (para agregar elementos), Dequeue (para eliminar elementos) y Peek (para ver el elemento del principio sin eliminarlo). Además, aprenderá a gestionar casos en los que la cola está vacía o llena, y a gestionar estos eventos en su aplicación para evitar errores.

Al completar este ejercicio, comprenderá cómo usar colas en C# y cómo aplicarlas en situaciones prácticas, como la gestión de tareas o el procesamiento de datos en el orden en que llegan.



Grupo

Gestión Dinámica de Memoria en C#

Objectivo

1. Cree una clase de cola que admita valores enteros.
2. Implemente los métodos Enqueue (para añadir elementos), Dequeue (para eliminar elementos) y Peek (para ver el elemento frontal sin eliminarlo).
3. Gestione casos extremos, como intentar eliminar un elemento de una cola vacía.
4. Demuestre la funcionalidad añadiendo, eliminando y viendo elementos en la cola.

En este ejercicio, deberá implementar una cola en C#. Una cola es una estructura de datos que sigue el principio FIFO (primero en entrar, primero en salir), lo que significa que el primer elemento en entrar es el primero en salir. En este ejercicio, deberá crear una clase para la cola que le permita insertar elementos al final de la cola y eliminar elementos del frente. El objetivo de este ejercicio es familiarizarse con las estructuras de datos en C# y cómo gestionarlas eficientemente.

Ejemplo de ejercicio en C#

 Copiar código C#
using System;
using System.Collections.Generic;

class CustomQueue
{
    // List to store queue elements
    private List queue;

    // Constructor to initialize the queue
    public CustomQueue()
    {
        queue = new List();
    }

    // Method to add an element to the end of the queue
    public void Enqueue(int item)
    {
        queue.Add(item);
        Console.WriteLine($"Enqueued: {item}");
    }

    // Method to remove and return the front element of the queue
    public int Dequeue()
    {
        if (queue.Count == 0)
        {
            throw new InvalidOperationException("Queue is empty.");
        }

        int frontItem = queue[0];
        queue.RemoveAt(0);
        Console.WriteLine($"Dequeued: {frontItem}");
        return frontItem;
    }

    // Method to return the front element without removing it
    public int Peek()
    {
        if (queue.Count == 0)
        {
            throw new InvalidOperationException("Queue is empty.");
        }

        return queue[0];
    }

    // Method to check if the queue is empty
    public bool IsEmpty()
    {
        return queue.Count == 0;
    }
}

class Program
{
    static void Main()
    {
        // Create an instance of the CustomQueue class
        CustomQueue queue = new CustomQueue();

        // Add elements to the queue
        queue.Enqueue(10);
        queue.Enqueue(20);
        queue.Enqueue(30);

        // Peek at the front element without removing it
        Console.WriteLine($"Front element (Peek): {queue.Peek()}");

        // Remove elements from the queue
        queue.Dequeue();
        queue.Dequeue();

        // Peek again after dequeuing some elements
        Console.WriteLine($"Front element after dequeuing (Peek): {queue.Peek()}");

        // Remove the last element
        queue.Dequeue();

        // Check if the queue is empty
        Console.WriteLine($"Is the queue empty? {queue.IsEmpty()}");
    }
}

 Output

Enqueued: 10
Enqueued: 20
Enqueued: 30
Front element (Peek): 10
Dequeued: 10
Dequeued: 20
Front element after dequeuing (Peek): 30
Dequeued: 30
Is the queue empty? True

Comparte este ejercicio de C#

Practica más ejercicios C# de Gestión Dinámica de Memoria en C#

¡Explora nuestro conjunto de ejercicios de práctica de 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#..