Se você usa qualquer dispositivo moderno, provavelmente já encontrou operações de pilha, mesmo que não tenha percebido. As pilhas são fundamentais em muitas tarefas de programação, desde o gerenciamento de chamadas de função até a habilitação de operações de desfazer.
Pilhas são uma estrutura de dados linear que segue a ordem das operações organizando os dados em uma estrutura LIFO ou FILO.
LIFO: Último a entrar, primeiro a sair.
FILO: Primeiro a entrar, último a sair.
As pilhas são usadas para realizar operações em uma coleção de elementos, como adicionar e remover elementos, exibir os elementos principais e exibir se a coleção está vazia ou cheia.
Por exemplo:
Quando você está em seu navegador visitando www.ESPN.com e acidentalmente clica em um anúncio de ingressos de beisebol do Chicago White Sox. Adicionamos à nossa pilha, talvez não intencionalmente, mas agora está no topo da nossa pilha. Então percebemos que o Chicago White Sox perdeu 15 jogos consecutivos. Bem... vamos apertar o botão Voltar (removendo esse elemento do topo da pilha).
Sim, aquele ali em cima. Isso demonstra o princípio LIFO nas operações de stacks, estamos deixando(removendo) a última página visitada de nosso histórico(ou Stacks) para retornar ao www.ESPN.com...talvez no próximo ano o White Sox's.
As operações de pilhas são usadas frequentemente em aplicativos que precisam manter o histórico ordenado do navegador da web, desfazer e refazer em editores de texto e pilhas de chamadas de função, para citar alguns.
As funções comumente usadas ao alterar pilhas são as seguintes:
.Push = para adicionar elemento em uma pilha.
.pop = para remover o elemento superior de uma pilha.
.peek = para exibir o elemento superior de uma pilha.
.length/.size = para determinar o total de índices em uma pilha. Javascript usa (.length)
.isEmpty = verifica se uma pilha está vazia.
.isFull = verifica se uma pilha está cheia; se a matriz tiver um tamanho fixo.
A estrutura de dados Stacks pode ser criada com uma classe stacks ou com um array regular.
Implementando pilhas sem classe:
Ao realizar operações de pilha sem uma classe de pilha, simulamos operações de pilha com um array.
Abaixo estará um exemplo de uso das operações de pilhas para reverter uma matriz de números. Usarei JSON.stringify para comparar os valores do resultado do array com o resultado do array desejado.
Ex:
// Reverse an array using stack operations let number = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; // original array let numberList = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]; // reversed array let ordernumberList = []; // array to store the reversed order // Loop through the numberList array to reverse its order for (var i = 0; iQuero destacar a instrução if-else bem no final. Utilizei o método JSON.stringify para comparar os dois arrays porque, sem ele, a comparação retornaria false, acionando a condição else, mesmo que os arrays tenham conteúdo idêntico. Isso acontece porque, ao comparar arrays em JavaScript, a comparação verifica suas referências (ou seja, suas localizações de memória) em vez do conteúdo real dentro dos arrays.
Como podemos ver ao longo do loop for, nosso método .pop (removeu) primeiro o último índice do array numberList (LIFO). Em seguida, use o método .push para adicioná-lo ao novo array ordernumberList, invertendo o array original.
FILO entra no novo array formulado como os primeiros índices inseridos no array ordernumberList serão os últimos a sair (FILO) se alguma vez modificados com as operações de pilhas.
Neste artigo, exploramos como as pilhas operam usando os princípios LIFO e FILO, implementando operações de pilha em JavaScript. Compreender as pilhas é essencial para muitas tarefas de programação, conforme visto em cenários do mundo real, como navegação na web.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3