Muitos programas precisam armazenar itens mantendo uma ordem, mas também necessitam de uma regra que controle qual item pode ser removido em seguida. Essa regra é importante porque altera o comportamento do código sob carga, a forma como os usuários percebem atrasos e a facilidade ou dificuldade de implementação de determinados recursos.
Para tornar essa regra concreta, analise estes cenários do mundo real e concentre-se na regra de ordenação que cada um deles aplica.
Assim que você percebe a regra, consegue prever o comportamento. Um botão de voltar retorna à página mais recente porque o sistema sempre remove o item mais novo primeiro, enquanto uma fila de impressão conclui a tarefa mais antiga primeiro porque o sistema remove o item mais antigo primeiro.
Uma pilha remove primeiro o item adicionado mais recentemente; é o princípio “último a entrar, primeiro a sair” (LIFO). Uma fila remove primeiro o item adicionado há mais tempo; é o princípio “primeiro a entrar, primeiro a sair” (FIFO).
Explore a comparação lado a lado e observe qual extremidade aceita inserções e qual permite remoções.