
		paulo1205
		
		(usa Ubuntu)
		
		Enviado em 25/05/2016 - 01:58h 
		Se você tem realmente uma fila, deve saber que só há um jeito de colocar e um jeito de tirar elementos da fila, que são, respectivamente, colocar o elemento no final e tirar o elemento do início.  Tudo o que vem no meio é (ou deveria ser) inacessível para o usuário do objeto da classe fila.
A pilha, por outro lado, só permite trabalhar em uma das extremidades.  A analogia com uma pilha de pratos é excelente.  Cada novo elemento colocado na pilha fica em cima do anterior e impede o acesso direto a ele.  E se eu quiser tirar um elemento, o elemento a ser tirado será o que estiver no topo da pilha.
Internamente, tanto filas quanto pilhas podem ser implementadas tanto como arrays quanto como listas.  Arrays permitem acesso direto a qualquer elemento, e listas permitem buscas sequenciais de valores específicos, com inclusões e exclusões em qualquer posição intermediária.  No entanto, independentemente do método usado internamente para implementação, quando de fala de 
fila, a quantidade de operações é restrita para garantir somente operações FIFO (
first in, first out, o primeiro a entrar é o primeiro a sair).  Logo uma classe que implementa pilha precisa de apenas dois métodos: um para colocar mais um elemento no final, e outro para tirar um elemento do início (um terceiro método, opcional, e que não viola a propriedade FIFO, é um que sirva para informar o tamanho atual da fila).  Por sua vez, uma 
pilha só tem de entregar operações LIFO (
last in, first out, o último a entrar é o primeiro a sair).  Consequentemente, a pilha so precisa de dois métodos: um para acrescentar elemento um no topo, e outro para tirar o elemento que estiver no topo (com um terceiro método, opcional, para dizer a altura da pilha).
Sendo assim, se você quer varrer os elementos de uma fila previamente montada, para então selecionar alguns, a única abordagem possível será tirar cada um dos elementos da frente da fila e examinar seu valor, e depois, se quiser, colocá-los em outra fila (ou até na mesma, se sua classe tiver o método de contagem de elementos e se você tomar os devidos cuidados).