<aside>

Conhecimentos necessários:

Listas simplesmente e duplamente ligadas

</aside>

<aside>

Navegação

</aside>

O que são?

Pilhas e filas nada mais são do que listas, porém com uma restrição na adição e remoção de elementos.

Pilha

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).

Fila

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.