Colas

🚶‍♂️ Queue<T> (Colas – FIFO)

La fila de personas. First In, First Out (el primero que llega es el primero en ser atendido, como una cola de eventos o de renderizado).

⚙️ Estructura

Una Cola en C# se puede describir como una lista de elementos en un orden específico, donde cada elemento es agregado al final de la lista y eliminado del principio. Las Colas se utilizan comúnmente para gestionar la secuencia de eventos o la secuencia de tareas a realizar en un programa.

📝 Ventajas

  • Fácil de utilizar: Las Colas son fáciles de utilizar y no requieren mucha lógica compleja.
  • Eficaz: Las Colas son eficaces para gestionar la secuencia de eventos o la secuencia de tareas a realizar en un programa.
  • Flexibles: Las Colas pueden ser utilizadas para almacenar una variedad de tipos de datos.

🚧 Desventajas

  • No permiten la inserción en cualquier posición: Las Colas no permiten la inserción en cualquier posición, solo en el final de la cola.
  • No permiten la eliminación de cualquier elemento: Las Colas no permiten la eliminación de cualquier elemento, solo del principio de la cola.
Estructura de datos - Colas. Generada con IA
Estructura de datos – Colas. Generada con IA

🖥️ Código fuente – CRUD (ejemplo)

Creación

public class Jugador
{
    public string Nombre { get; set; }
    public int Puntos { get; set; }
}
public class Juego
{
    private Queue<Jugador> jugadores;
    public void AgregarJugador(Jugador jugador)
    {
        jugadores.Enqueue(jugador);
    }
}

Lectura

   public Jugador ObtenerJugador()
    {
        if (jugadores.Count > 0)
        {
            return jugadores.Peek();
        }
        else
        {
            return null;
        }
    }

Modificación

    public void ActualizarJugador(Jugador jugador)
    {
        if (jugadores.Count > 0)
        {
            Jugador jugadorActual = jugadores.Peek();
            jugadorActual.Nombre = jugador.Nombre;
            jugadorActual.Puntos = jugador.Puntos;
        }
    }

Eliminación

    public void EliminarJugador()
    {
        if (jugadores.Count > 0)
        {
            jugadores.Dequeue();
        }
    }