DEV Community

Cover image for Fixando os conceitos de Fila e Pilha com a ajuda do Bob Esponja
Rodolfo
Rodolfo

Posted on

Fixando os conceitos de Fila e Pilha com a ajuda do Bob Esponja

Opa.. iae, na paz?

Estou escrevendo esse artigo para compartilhar com vocês como foi que eu fixei de uma vez por todas os conceitos de Fila e Pilha na minha cabeça e nunca mais confundi suas particularidades.


Cenários em que você deve continuar lendo o artigo e confiar neste humilde desenvolvedor:

  • Se você não faz ideia do que signfica pilha e fila dentro do contexto de Estrutura de Dados =P
  • Se você se confunde todo para responder a maldita bendita pergunta 'Qual a diferença entre pilha e fila?'
  • Se você sua frio quando alguém te pergunta se pilha é LIFO e fila é FIFO
  • Se você ficou curioso para entender de onde eu tirei essa relação do Bob Esponja com Estrutura de Dados =B
  • Se você está 'de boa' por aí e quer ler por ler mesmo HAHA =]


Se você resolveu continuar então está na hora de te aprensentar o personagem que irá nos ajudar a fixar esses conceitos e nunca mais esquecermos. Com vocês: BOB ESPONJAAAAAAA =]



E de onde surgiu essa maluquice?

Bom, certa vez eu estava fazendo uma entrevista com uma Tech Recruter para uma vaga de Desenvolvedor e ela me perguntou o seguinte "Rodolfo, você consegue me explicar o que é e como funcionam pilhas e filas?"

No primeiro momento eu fiquei: "Uma pergunta técnica no meio de uma entrevista com uma recrutadora?" "Qual a pegadinha? Será que ela realmente sabe o que é certo ou errado?" "Pq uma pergunta tão básica?" ![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/fgeumbqd1t5lizzkws7q.gif)



Todos esses questionamentos somados ao fato de estar nervoso fez com que os conceitos sumissem da minha cabeça e gaguejando eu disse apenas "São estruturas de dados bem famosas!" e ela respondeu com um simples "Humnn, ok!!!".

A entrevista continuou com algumas outras perguntas simples e no final acabou que eu passei para a próxima fase. Não conseguia ficar feliz pois não conseguia esquecer minha resposta 'lixo' para aquela pergunta tão tranquila. Como eu pude esquecer conceitos tão básicos? Fila é LIFO ou FIFO mesmo? Eu não sabia era de mais nada naquele momento.

Como eu já estava estressado resolvi assistir um pouco de televisão e lá estava passando o nosso querido Bob Esponja. Assistindo o desenho eu exclamei sozinho em casa:

"É CLARO que eu conheço esses conceitos 'uai' e inclusive é tão fácil que eu conseguiria explicar utilizando o Bob Esponja e seu mundo como exemplo!" hahaha, será mesmo? vou tentar =]

Antes, um pouco de teoria:

Filas e pilhas são esturutras de dados do tipo Lista Linear. São compostas por elementos de um mesmo tipo de dado e que estão organizados de maneira sequencial. Não necessariamente fisicamente em sequência mas possuindo ordem lógica entre eles.

Podemos fazer diversas operações em listas lineares:

  • Criação de uma lista
  • Inserção e exclusão de um elemento
  • Acesso a um elemento
  • Combinação de listas em uma só
  • Destruição de uma lista
  • Outros

A forma como as operações de acesso, inserção e exclusão em uma lista linear são executadas é que vão determinar o seu tipo. É exatamente nesse ponto que nosso jogo começa \o/

O conceito implementado por uma pilha é o de LIFO “Last-in, First-out” ou FILO "First-in, last-out" traduzindo para o nosso "portuga", o último elemento a entrar na lista é o primeiro a sair.

Enquanto uma fila implementa o conceito FIFO “First-in, First-out”. Ou seja, o primeiro elemento que entra na lista é o primeiro a sair.

Na teoria é isso, muito simples né? Para fixar que tal exemplificarmos com cenários do mundo ficticio da fenda do biquini ? =]

PILHA

Sempre que te perguntarem sobre Pilha lembre-se do Bob Esponja lavando pratos e o quanto é cômico ver uma ESPONJA lavando vasilhas com um PANO kkkkkk.

Como funciona o processo de lavar pratos?

  • Um espaço é reservado para armazenar/empilhar os pratos
  • O primeiro prato que chega é inserido no espaço reservado
  • Todo novo prato sujo é inserido na parte de cima (topo) da pilha de pratos
  • O prato que será lavado sempre será o do topo da pilha

Ou seja, o ÚLTIMO (last in) prato que entrar na pilha de pratos do Bob esponja será o primeiro que ele irá lavar (first out).

FILA

Quando te perguntarem sobre Fila é só lembrar da fila que é formada para comprar um delicioso Hambúrguer de Siri.

Como funciona?

  • Um espaço é reservado para que a fila seja criada na porta do Siri Cascudo
  • O primeiro interessado chega ao local e é inserido no início da fila
  • Todo novo interessado que chega é inserido no final da fila
  • Quem estiver no início da fila será liberado para entrar no restaurante e comprar seu lanche.

Ou seja, quem chegar primeiro na porta do Siri Cascudo será o PRIMEIRO da fila (First in) e consequentemente o PRIMEIRO a comprar o seu lanche (First out).



Consegui ou não explicar ? Aposto que você nunca mais vai esquecer HAHAHAHA (seja por bem ou por mal lol)

see ya
\o

Top comments (3)

Collapse
 
rodmendes82 profile image
Rodrigo Mendes

Excelente brow!

Collapse
 
rodriggoarantes profile image
Rodrigo Arantes

Parabéns pelo artigo, muito legal o exemplo!

Collapse
 
fabianofaust profile image
Fabiano Faust

Muito bem explicado!