São uma estrutura de dados em que os elementos são postos em sequência e o acesso á eles é restrito à um item em sua extremidade.
Isso torna a fila, uma estrutura de dados do tipo FIFO (First In – First Out)

Exemplo:

Exemplo de implementação:

using System;
using System.Collections.Generic;

class Fila<T>
{
    private LinkedList<T> lista;

    public Fila()
    {
        lista = new LinkedList<T>();
    }

    // Adiciona um item ao final da fila
    public void Enqueue(T item)
    {
        lista.AddLast(item);
    }

    // Remove o item na frente da fila e retorna
    public T Dequeue()
    {
        if (IsEmpty())
        {
            throw new InvalidOperationException("A fila está vazia.");
        }

        T value = lista.First.Value;
        lista.RemoveFirst();
        return value;
    }

    // Retorna o item na frente da fila sem removê-lo
    public T Peek()
    {
        if (IsEmpty())
        {
            throw new InvalidOperationException("A fila está vazia.");
        }

        return lista.First.Value;
    }

    // Verifica se a fila está vazia
    public bool IsEmpty()
    {
        return lista.Count == 0;
    }

    // Retorna o número de elementos na fila
    public int Size()
    {
        return lista.Count;
    }
}

class Program
{
    static void Main()
    {
        // Exemplo de uso da fila
        Fila<int> fila = new Fila<int>();

        // Adicionando elementos na fila
        fila.Enqueue(10);
        fila.Enqueue(20);
        fila.Enqueue(30);

        Console.WriteLine("Primeiro item da fila: " + fila.Peek());  // Exibe 10
        Console.WriteLine("Tamanho da fila: " + fila.Size());       // Exibe 3

        // Removendo elementos da fila
        Console.WriteLine("Item removido: " + fila.Dequeue());     // Exibe 10
        Console.WriteLine("Tamanho da fila após remoção: " + fila.Size()); // Exibe 2

        Console.WriteLine("Item removido: " + fila.Dequeue());     // Exibe 20
        Console.WriteLine("Item removido: " + fila.Dequeue());     // Exibe 30

        Console.WriteLine("Fila está vazia? " + fila.IsEmpty());   // Exibe True
    }
}

[]’s
Otávio

Item Anterior:

Próximo Item:

Leave a Reply

Your email address will not be published. Required fields are marked *