FilaCircular.java

275 palavras 2 páginas
/* Implementação de uma Fila Circular :
Uma fila circular é a maneira mais adequada de utilizar este recurso, pois o inicio e o final passam a ser lógicos, ou seja, quando um elemento do inicio é retirado da fila, o inicio passa a ser o próximo elemento; A mesma coisa ocorre com o final que avança uma posição, isso torna ela muito mais eficiente, gerando essa ideia de um círculo.
Da mesma forma que a fila simples, ela possui dois métodos básicos semelhantes:
Ø enqueue(x) : Insere um elemento qualquer no fim da fila;
Ø dequeue() : Remove o elemento que se encontra no início da fila; */

public class FilaCircular { final int TAMMAX; Object[] dados; int inicio = 0, fim = 0, tamanho = 0;

public FilaCircular(int tamanho){ dados = new Object[tamanho]; TAMMAX = tamanho; } public void InsereFila(Object x) { if (tamanho == TAMMAX) { System.out.println("Fila Cheia!"); } else { dados[fim] = x; fim = (fim + 1) % TAMMAX; tamanho++; } }

public Object RemoveFila() { if (tamanho > 0) { Object tmp = dados[inicio]; dados[inicio] = 0; inicio = (inicio + 1) % TAMMAX; tamanho--; return tmp; } else { System.out.println("Fila Vazia!"); } return 0; }

public void mostraFila() { for (int i = 0; i < TAMMAX; i++) { if (dados[i] != null) { System.out.print("[" + dados[i] + "]"); } } System.out.println(""); }
}

// Testando nossa classe : class TestaFilaCircular { public static void main(String[] args) { FilaCircular fc = new FilaCircular(5); fc.InsereFila(1); // Adicionando elementos fc.mostraFila(); // Mostrando fila fc.InsereFila(2); fc.mostraFila();

Relacionados