Fila FIFO

De Aulas

Voltar para Estrutura de Dados

Classe Nó

 1public class No {
 2	public String conteudo;
 3	public No proximo;
 4	public No anterior;
 5
 6	public No(String c) {
 7		conteudo = c;
 8		proximo = null;
 9		anterior = null;
10	}
11}

Classe Fifo

 1public class Fifo {
 2	public No inicio = null;
 3	public No fim = null;
 4	public int tamanho = 0;
 5	
 6	public void inserir(String c) {
 7		No aux = new No(c);
 8		if (tamanho == 0) {
 9			fim = aux;
10			inicio = aux;
11		} else {
12			aux.proximo = fim;
13			fim.anterior = aux;
14			fim = aux;
15		}
16		tamanho++;
17	}
18	
19	public String retirar() {
20		if (tamanho == 0) {
21			return null;
22		}
23		No aux = inicio;
24		if (inicio != fim) {
25			inicio = inicio.anterior;
26			inicio.proximo = null;
27		} else {
28			inicio = null;
29			fim = null;
30		}
31		tamanho--;		
32		return aux.conteudo;
33	}
34}

Programa Principal

 1public class Programa {
 2	public static void main(String[] argumentos) {
 3		Fifo f = new Fifo();
 4
 5		for (int i = 0; i < 10; i++) {
 6			f.inserir("" + i);
 7		}
 8		
 9		String saida = "";
10		while (saida != null) {
11			saida = f.retirar();
12			if (saida != null) {
13				System.out.println(saida);
14			}
15		}
16	}
17}