Estrutura de dados
Pilha
Uma pilha é uma das várias estruturas de dados que admitem remoção de elementos e inserção de novos elementos. Mais especificamente, uma pilha (= stack) é uma estrutura sujeita à seguinte regra de operação: sempre que houver uma remoção, o elemento removido é o que está na estrutura há menos tempo, o primeiro objeto a ser inserido na pilha é o último a ser removido. Essa política é conhecida pela sigla LIFO (= Last-In-First-Out).
Fila
Uma fila é uma estrutura de dados que admite inserção de novos elementos e remoção de elementos antigos. Mais especificamente, uma fila (= queue) é uma estrutura sujeita à seguinte regra de operação: sempre que houver uma remoção, o elemento removido é o que está na estrutura há mais tempo, o primeiro objeto inserido na fila é também o primeiro a ser removido. Essa política é conhecida pela sigla FIFO (= First-In-First-Out).
Comparação
Basicamente o que diferencia a fila da pilha é a ordem de saída dos elementos. Enquanto na pilha o elemento retirado é sempre o último a entrar (o do topo da pilha), na fila sempre é retirado o primeiro elemento a entrar na estrutura.
Exemplos Ilustrados:
Pilhas
1. Uma porção de pratos sujos de um restaurante sobrepostos para serem lavados, o último prato colocado será o primeiro a ser lavado.
2. Vários jornais sobrepostos, disponíveis para serem vendidos em uma banca, o último jornal colocado será o primeiro a ser vendido.
3. Produtos organizados em uma prateleira de supermercado, os últimos produtos colocados serão os primeiros a serem vendidos.
4. A caixa de entrada de e-mail, a ultima mensagem recebida será a primeira a ser lida, considerando que o usuário irá ler sempre a mensagem do topo da lista.
Fila
1. Pessoas dispostas uma atrás da outra em um banco, seguindo o protocolo de atendimento por ordem de chegada, a primeira pessoa da fila será a primeira a ser atendida.
2. Um canhão de disparo de bolas de tênis, usado em treinamentos por