<aside>
Conhecimentos necessários:
Listas simplesmente e duplamente ligadas
</aside>
<aside>
Navegação
</aside>
Pilhas e filas nada mais são do que listas, porém com uma restrição na adição e remoção de elementos.
Seguem as regras do FILO e LIFO, que significam First in, last out e Last in, first out, respectivamente. Isso quer dizer que os primeiros elementos a serem adicionados serão os últimos a saírem e que os últimos elementos a serem adicionados são os primeiros a saírem.
Seria como uma pilha de livros: você vai sempre colocar um livro em cima um do outro, mas se quiser tirar, vai tirar de cima também.
Na prática, isso significa que você tem que adicionar e remover sempre da mesma extremidade, seja no início ou no fim.
Mas pense comigo: adicionar e remover no final, dará certo, mas consumirá mais recursos, pois terá que percorrer a lista inteira sempre que quiser adicionar… então adicionar e remover do início é bem mais vantajoso (além de mais fácil).
Seguem as regras do FIFO e LILO, que significam First in, first out e Last in, last out, respectivamente. Isso quer dizer que os primeiros elementos a serem adicionados serão os primeiros a saírem e que os últimos elementos a serem adicionados são os últimos a saírem.
Seria como uma fila de pessoas, por exemplo.
Na prática, você precisa adicionar e remover os elementos de extremidades diferentes, seja adicionar no início e remover no final ou adicionar no final e remover no início. Por questão de ser mais intuitivo, geralmente é optado adicionar no final e remover no início.