//A INTERFACE
public interface Fila
{
public boolean isEmpty();
public void makeEmpty();
public int size();
//enfileirar insere no fim da fila
public void enqueue(Object x);
//Desenfileirar remove elem no inicio retorne null
//se estiver vazia
public Object dequeue();
//retorna o elemento do inicio
public Object getInicio();
//Retorna o elemento do fim
public Object getFim();
}
// A IMPLEMENTACAO DA INTERFACE
public class FilaLigada implements Fila
{
private Nodo inicio;
private Nodo fim;
private int numElem;
public FilaLigada()
{ inicio=fim=null;
numElem=0;
}
public boolean isEmpty()
{
return (inicio==null);
}
public void makeEmpty()
{inicio=fim=null;
numElem=0;}
public void enqueue(Object x)
{
if(isEmpty())
inicio=fim=new Nodo(x);
else{ fim.next=new Nodo(x);
fim=fim.next;
}
numElem++;
}
public Object dequeue()
{
Object elemRemover=null;
if(isEmpty())
return null;
elemRemover=inicio.elem;
if(inicio==fim)
inicio=fim=null;
else
inicio=inicio.next;
numElem--;
return elemRemover;
}
public int size()
{return numElem;
}
public Object getInicio()
{ Object elemInicio=null;
if(isEmpty())
return elemInicio;
elemInicio=inicio.elem;
return elemInicio;
}
public Object getFim()
{
Object elemInicio=null;
if(isEmpty())
return elemInicio;
elemInicio=fim.elem;
return elemInicio;
}
//classe interna
private class Nodo
{
private Object elem;
private Nodo next;
//construtor
private Nodo(Object x)
{ elem=x;
next=null;
}
private Nodo(Object x,Nodo seguinte)
{
elem=x;
next=seguinte;
}
}}
A CLASSE TESTE ATRAVES DA GERACAO DE NUMEROS ALEATORIOS
import java.util.Random;
import <a href="http://java.io">java.io</a>.<em>;
import java.util.</em>;
public class TesteFila
{
public static void main (String[] args)
{ final int CAP_TESTE =10;
Fila f = new FilaLigada();
Random gerador = new Random();
System.out.println(" numeros gerados sao: ");
for (int i=0; i < CAP_TESTE; i++)
{
int d = 1 + gerador.nextInt(100);
f.enqueue(new Integer(d));
System.out.print(d + " ");
}
System.out.println();
System.out.print(“numero de elementos na fila :”);
System.out.println(f.size());
System.out.println (" numeros vindos do fila ");
//A MINHA DUVIDA E COMO IMPRIMIR AQUI OS ELEMENTOS DA FILA SEM QUE EU TENHA QUE APAGA-LOS
// PORQUE DEPOIS EU PRETENDO APAGAR CERTOS ELEMENTOS DA FILA E …
//IMPRIMIR O PRIMEIRO ELEMENTO
//IMPRIMIR O ULTIMO ELEMENTO
//ECT… ISTO EU FACO
// O PRINCIPAL E APENAS A SUA VIZUALIZACAO…!!!
ABRACO…!