Resumo : este tutorial apresenta a estrutura de dados da pilha JavaScript e mostra como usar um array como pilha.
Introdução à estrutura de dados da pilha
Uma pilha é uma estrutura de dados que contém uma lista de elementos. Uma pilha funciona com base no princípio LIFO, ou seja, último a entrar, primeiro a sair, o que significa que o elemento adicionado mais recentemente é o primeiro a ser removido.
Uma pilha possui duas operações principais que ocorrem apenas no topo da pilha: push e pop. A operação push coloca um elemento no topo da pilha, enquanto a operação pop remove um elemento do topo da pilha.
O nome pilha vem da analogia com um conjunto de itens físicos, por exemplo, discos DVD, livros, empilhados uns sobre os outros.
Uma pilha tem muitos aplicativos. Por exemplo, o mais simples é inverter uma palavra. Para fazer isso, você coloca uma palavra na pilha, letra por letra, e retira as letras da pilha.
As outras aplicações da pilha são o mecanismo de “desfazer” em editores de texto, análise de sintaxe, chamada de função e conversão de expressão (infixo para postfix, infixo para prefixo, postfix para infixo e prefixo para infixo).
O tipo JavaScript Array fornece os métodos push()
e pop()
que permitem usar um array como uma pilha.
método push()
O push()
método permite adicionar um ou mais elementos ao final do array. O push()
método retorna o valor da length
propriedade que especifica o número de elementos do array.
Se considerarmos um array como uma pilha, o push()
método adiciona um ou mais elementos no topo da pilha. O exemplo a seguir cria uma matriz vazia chamada stack
e adiciona cinco números, um por um, ao final da stack
matriz. É como colocar cada número no topo da pilha.
let stack = [];
stack.push(1);
console.log(stack); // [1]
stack.push(2);
console.log(stack); // [1,2]
stack.push(3);
console.log(stack); // [1,2,3]
stack.push(4);
console.log(stack); // [1,2,3,4]
stack.push(5);
console.log(stack); // [1,2,3,4,5]
Linguagem de código: JavaScript ( javascript )
A figura a seguir ilustra cada etapa do script acima.
Inicialmente, a pilha está vazia. Cada vez, chamamos o push()
método para adicionar um número à pilha. Após 5 chamadas, a pilha possui 5 elementos.
Observe que o push()
método também permite adicionar vários itens ao final do array por vez.
método pop()
O pop()
método remove o elemento no final do array e retorna o elemento ao chamador. Se o array estiver vazio, o pop()
método retornará undefined .
O exemplo a seguir mostra como retirar elementos do topo da pilha usando o pop()
método.
console.log(stack.pop()); // 5
console.log(stack); // [1,2,3,4];
console.log(stack.pop()); // 4
console.log(stack); // [1,2,3];
console.log(stack.pop()); // 3
console.log(stack); // [1,2];
console.log(stack.pop()); // 2
console.log(stack); // [1];
console.log(stack.pop()); // 1
console.log(stack); // []; -> empty
console.log(stack.pop()); // undefined
Linguagem de código: JavaScript ( javascript )
A figura abaixo ilustra cada etapa do script.
Inicialmente, a pilha possui 5 elementos. O pop()
método remove o elemento no final do array, ou seja, no topo da pilha, um de cada vez. Após cinco operações, a pilha está vazia.
Reverter uma string usando uma pilha JavaScript
O exemplo a seguir mostra como reverter uma string usando uma pilha.
function reverse(str) {
let stack = [];
// push letter into stack
for (let i = 0; i < str.length; i++) {
stack.push(str[i]);
}
// pop letter from the stack
let reverseStr = '';
while (stack.length > 0) {
reverseStr += stack.pop();
}
return reverseStr;
}
console.log(reverse('JavaScript Stack')); //kcatS tpircSavaJ
Linguagem de código: JavaScript ( javascript )
Como funciona o roteiro.
A reverse()
função aceita um argumento de string e retorna sua versão invertida com a seguinte lógica:
- Primeiro, percorra
str
e insira cada letra nastack
matriz. - Segundo, retire cada letra da pilha e construa a string invertida.
Neste tutorial, mostramos como usar um array como uma estrutura de dados de pilha JavaScript que possui duas operações principais: push e pop.