Galera, tenho algum tipo de ganho único ao utilizar stack? alguma situação onde devo recorrer a ele não a outro? obrigado.
Quais seriam as vantagens unicas do STACK?
5 Respostas
Perguntando para um amigo meu: O que é stack?
Tem um amigo meu que também tá perguntando
Stack é um algoritmo, chamado aqui de pilha. No caso, o ultimo a entrar vai ser o primeiro a sair. Dentro da lib. java.util, ele já te trais este algoritmo pronto.
Funcionando da seguinte maneira, com o método push inserimos, com o método pop, retiramos. Seguindo a imagem.

Ao modo que eu vou inserindo, um por cima do outro, sempre adicionando por ultimo e retirando por ultimo. Como pode ser possível ver na imagem. Portanto, não é possível retirar o número 1, sem retirar o 2,3,4 e 5.
Ah, o pronome masculino me confundiu. É mais usual chamar pilhas de estrutura de dado ao invés de algoritmo.
Mas assim, com esse comportamento bem específico (último a entrar, primeiro a sair) acho que os casos de uso sao meio que auto-explicativos: quando precisar desse comportamento, use pilhas.
Na prática nao me lembro de ter usado pilhas, filas sao bem mais comuns.
A questão não é “ganho único”, mas sim usar a ferramenta adequada para o problema. Pilhas, filas e outras estruturas de dados são ferramentas, você as usa ou não conforme a situação pede.
Um caso clássico do uso de pilhas é chamado de pilha de chamada de função, e é usado para determinar a que ponto de execução um processo deve retornar depois que um processo ou sub-processo (método, função, etc) encerra. Diversos sistemas e linguagens de programação usam tal recurso de uma forma ou de outra.
Outro exemplo mais simples é a resolução do cálculo de expressões matemáticas, usando notação polonesa (reversa ou não). Inclusive, costuma ser um exercício interessante de estrutura de dados.
Abraço.