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#
Mostrar 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
Código de ejemplo copiado
Comparte este ejercicio de C#