Escolar Documentos
Profissional Documentos
Cultura Documentos
Implementao de Fila
uma lista onde a insero realizada em uma extremidade e a retirada na outra.
Critrio FIFO First In First Out (primeiro que entra, primeiro que sai)
28
f.insere(20)
f.insere(30)
Retirar X=f.retira()
Como verificar se a fila est vazia? R < Frente Como verificar se a fila est cheia? v.length -1 (capacidade do vetor) Observao: Nesta implementao no h reaproveitamento de espao j ocupado. Existe uma situao em que a fila torna-se cheia e vazia ao mesmo tempo?
X=f.retira()
29
Como melhorar a implementao? 1) Deslocando os nodos para o incio do vetor a cada retirada.
2) Deslocando os nodos para o incio do vetor na situao de lista cheia Fila CHEIA f.insere(24)
Como verificar se a fila est vazia? tam=0 Como verificar se a fila est cheia? tam=v.length
30
X= f.retira()
31
Classe PriorityQueue Mtodo PriorityQueue() Cria uma fila de prioridade com capacidade inicial de 11 nodos. Adiciona um nodo na fila. Retorna true. Excees: NullPointerExeception se o elemento null ClassCastExeception se o elemento no pode ser comparado com os elementos que esto na fila. public Object poll() Consulta e remove um nodo da fila. Retorna null se a fila est vazia
Exemplo
import java.util.PriorityQueue; public class Exemplo11{ public static void main(String args[]){ PriorityQueue fila = new PriorityQueue(); Integer dado; fila.add(new Integer(40)); fila.add(new Integer(10)); fila.add(new Integer(60)); System.out.println(fila); dado = (Integer) fila.poll(); while(dado!=null){ System.out.println(dado); dado = (Integer) fila.poll(); } } }
32