//Remove o objeto do início da Fila;
        public void Remover()
        {
            if (EstaVazia())
            {
                throw new Exception("Fila vazia");
            }

            Primeira = Primeira.Proxima;
            TotalDeElementos--;

            if (TotalDeElementos == 0)
            {
                Ultima = null;
            }
        }
 //Adiciona um elemento no fim da Fila
 public void Inserir(T elemento)
 {
     if (TotalDeElementos == 0)
     {
         Celula <T> nova = new Celula <T>(elemento);
         Primeira = nova;
         Ultima   = nova;
     }
     else
     {
         Celula <T> nova = new Celula <T>(elemento);
         Ultima.Proxima = nova;
         nova.Anterior  = Ultima;
         Ultima         = nova;
     }
     TotalDeElementos++;
 }
        public override string ToString()
        {
            // Verificando se a Lista esta vazia
            if (TotalDeElementos == 0)
            {
                return("[]");
            }
            StringBuilder builder = new StringBuilder("[");

            Celula <T> atual = Primeira;

            // Percorrendo ate o penultimo elemento.
            for (int i = 0; i < TotalDeElementos - 1; i++)
            {
                builder.Append(atual.Elemento);
                builder.Append(", ");
                atual = atual.Proxima;
            }
            // ultimo elemento
            builder.Append(atual.Elemento);
            builder.Append("]");
            return(builder.ToString());
        }
 public FilaDinamica()
 {
     Primeira         = null;
     Ultima           = null;
     TotalDeElementos = 0;
 }
 // Exclui todos os elementos da Fila;
 public void Limpar()
 {
     Primeira         = null;
     Ultima           = null;
     TotalDeElementos = 0;
 }