As pilhas e as filas em Javascript

Programadores conhecem bem as duas estruturas que são as pilhas e as filas. Elas permitem ordenar elementos durante a espera de um tratamento. A seguir, veja que existe um meio simples de reproduzi-los em Javascript com métodos preexistentes.

O foco deste artigo são os quadros, ou seja, o Array de Javascript. Grande parte das pessoas conhece o pedaço de código descrito aqui:

ver meuQuadro = new Array(1, 2, 3, 4, 5) ;

As pilhas e as filas Javascript não são nada mais do que quadros que utilizam quatro métodos: pop(), push(), shift() e unshift().

As pilhas: a estrutura FILO

FILO é um acrônimo inglês que significa"First In Last Out", ou seja: "primeiro a entrar, primeiro a sair".

Utilizando os dois métodos abaixo:

  • push(): que permite adicionar um elemento no final do quadro, aumentando seu tamanho de 1.
  • pop(): que retirar o último elemento do quadro, reduzindo, assim, seu tamanho de 1.

Evidentemente, você pode igualmente utilizar os métodos shift() e unshift() para fazer uma pilha com o início do quadro.

Exemplo de utilização de uma pilha :

meu quadro.push(6);  //Adiciona-se um 6° elemento   
meu quadro.pop(); // Retira-se
meu quadro.pop(); // Retira-se 5 meu quadro.push(meu quadro.pop()); // Sem efeito
/* O quadro resultante é [1|2|3|4] */


Os filas: a estrutura FIFO

FIFO é o acrônimo significando "First In First Out", ou seja: "primeiro a entrar, primeiro a sair".

Imagine desta vez uma fila de espera em um supermercado. Você chegará na caixa em primeiro lugar, e as pessoas chegariam atrás de você. Necessariamente, você vai passar em primeiro: isto é uma fila .

Utilizaremos os dois métodos seguintes:

  • push(): que permite sempre adicionar um elemento no final do quadro.
  • shift(): que retira o primeiro elemento do quadro, reduzindo, assim, seu tamanho ao defasar os outros elementos para a esquerda.

<ital>mais uma vez, você pode fazer uma fila invertida ao adicionar elementos no início, e retirando-os pelo fim, mas, melhor ainda é ficar o mais próximo possível da realidade.

Exemplo de utilização de uma fila :

 meu quadro.push(6);  // Adiciona-se um 6° elemento   
meu quadro.shift(); // retira-se o 1
meu quadro.shift(); // retira-see 2
meu quadro.push(meuQuadro.shift()); // Coloca-se o primeiro elemento no fim.
/* O quadro que resulta é [4|5|6|3] */

Quando utilizá-los?

Eles podem ser necessários para gerar os acontecimentos onKeyUp de uma input de tipo texto, substituindo aquilo que o usuário digitava por outra coisa, além de memorizar.

Com uma fila, é possível estocar rapidamente a totalidade das letras digitadas, que serão tratadas mais tarde.

Foto: © Maximilian Weisbecker - Unsplash

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.
Este documento, intitulado 'As pilhas e as filas em Javascript', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.

Assine nossa newsletter!

Assine nossa newsletter!
Junte-se à comunidade