Uma vez que na pilha, o primeiro a ser inserido é o ultimo a ser retirado, uma possibilidade é receber uma pilha P1 como parâmetro, criar uma pilha auxiliar P2.
Passar os elementos de P1 para P2. Removendo de P1 e inserindo em P2. No final, P2 será a P1 invertida, basta retorná-la.
O pseudo-código ficaria assim:
invertePilha(Pilha1)
{
enquanto Pilha1 não está vazia, faça:
{
Pilha2.insere(Pilha1.remove)
}
retorna Pilha2
}
Isso também pode ser feito utilizando uma lista encadeada, vetor, entre outros. Mas acho que o meio mais fácil seria esse.
Para escrever sua resposta aqui, entre ou crie uma conta
Algoritmos e Programação
Compartilhar