Implementando pilha Javascript usando um array

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.Pilha JavaScript: uma analogia com uma pilha de livros

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 lengthpropriedade 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 stacke adiciona cinco números, um por um, ao final da stackmatriz. É 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.

Operações JavaScript Stack Push

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()); //  undefinedLinguagem de código:  JavaScript  ( javascript )

A figura abaixo ilustra cada etapa do script.

Pop de pilha JavaScriptt

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 tpircSavaJLinguagem 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:

  1. Primeiro, percorra stre insira cada letra na stackmatriz.
  2. 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.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *