tava pensando em algo e me surgiu uma dúvida, talvez vocês possam sanar. Temos as estruturas de dados como Lista, Fila que são úteis a toda hora em várias situações diferentes, mas, e a Pilha? Em quais situações reais essa estrutura é adequada?
Uma grande aplicação é a pilha de métodos da JVM… Quando vc chama um método e este finaliza, a JVM sabe que tem q retornar à execução para o método que a chamou, e assim sucessivamente, graças a uma pilha!! E ainda, no caso de uma exception lançada, um handler é procurado nesta pilha de métodos…
peczenyj
Se vc quer atender o último objeto primeiro, vc usa uma pilha, basicamente.
Imagine que numa determinada operação ocorreram diversos problemas e vc está interessado em resolver o ultimo, depois o penultimo: vc pode empilhar erros.
Vc poderia empilhar requisições, problemas, pedidos, pendências, avisos, etc, tudo o que faça sentido ser empilhado.
Andre_Brito
Opa.
Acho que dá pra aplicar a pilha também pra fazer o backtracking em grafos (em redes neurais MLP, por exemplo).
hiroc
peczenyj:
Se vc quer atender o último objeto primeiro, vc usa uma pilha, basicamente.
Imagine que numa determinada operação ocorreram diversos problemas e vc está interessado em resolver o ultimo, depois o penultimo: vc pode empilhar erros.
Vc poderia empilhar requisições, problemas, pedidos, pendências, avisos, etc, tudo o que faça sentido ser empilhado.
então peczeny, talvez requisições, problemas, pedidos, pendências e avisos sejam melhor tratados usando fila, não? porque um problema antigo é o que teoricamente precisa ser tratado primeiro, assim como avisos, pendências… imagina se a primeira pendência ficasse esperando eternamente já que sempre há novas pendências…
hiroc
Andre Brito:
Opa.
Acho que dá pra aplicar a pilha também pra fazer o backtracking em grafos (em redes neurais MLP, por exemplo).
É vero cara, backtracking em grafos e árvores, não tinha pensado nisso. Mto aplicado em games do tipo labirinto neh…eu vou, estou sem saída, volto pelo caminho…
jorgefrancisco
Pilha pode ser usado na solução de problemas naturalmente recursivos, em que não é viável o uso da recursão, seja por problemas de memória ou processamento excessivo, por exemplo! =)