package tad.fila;

public class FilaLista implements IFila {
    private class No {
        public No anterior = null;
        public Object valor;
    }
    
    private No inicio = null, fim = null;
    private int tamanho = 0;
    
    @Override
    public void enfileirar(Object o) {
        No novo = new No();
        novo.valor = o;
        
        if(estaVazia())
            inicio = novo;
        else
            fim.anterior = novo;
        
        fim = novo;
        tamanho++;
    }

    @Override
    public Object inicio() throws EFilaVazia {
        if(estaVazia())
            throw new EFilaVazia();
        
        return inicio;
    }

    @Override
    public Object desenfileirar() throws EFilaVazia {
        if(estaVazia())
            throw new EFilaVazia();
        
        Object desenfileirado = inicio.valor;
        inicio = inicio.anterior;
        tamanho--;
        return desenfileirado;
    }

    @Override
    public int tamanho() {
        return tamanho;
    }

    @Override
    public boolean estaVazia() {
        return tamanho == 0;
    }
    
}

@@ -799,22 +799,18 @@
         
-Object
+No
  desenfi
@@ -825,22 +825,16 @@
 = inicio
-.valor
 ;%0A      
@@ -844,21 +844,62 @@
 nicio = 
-inici
+desenfileirado.anterior;%0A        desenfileirad
 o.anteri
@@ -892,32 +892,39 @@
 leirado.anterior
+ = null
 ;%0A        tamanh
@@ -957,16 +957,22 @@
 ileirado
+.valor
 ;%0A    %7D%0A

Update FilaLista.java