Há três pilhas P, Q e R, inicialmente vazias, nas quais é p...

Próximas questões
Com base no mesmo assunto
Q404208 Algoritmos e Estrutura de Dados
Há três pilhas P, Q e R, inicialmente vazias, nas quais é possível empilhar e desempilhar. Os números inteiros 1, 2 e 3 são empilhados, nessa ordem, na pilha P (3 fica no topo).

Qual é a sequência de empilhamento e desempilhamento que finaliza com a sequência 2, 3, 1 (1 fica no topo) na pilha R, com um mínimo de movimentos?

Dado
Exemplo de notação:
DP: significa desempilhar da pilha P
E2Q: significa empilhar 2 na pilha Q
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Vamos analisar a questão proposta. A alternativa correta é a alternativa A.

Para resolver essa questão, precisamos entender o funcionamento das pilhas e a sequência de operações de empilhamento e desempilhamento que nos permite obter a ordem final desejada (2, 3, 1) na pilha R. Uma pilha é uma estrutura de dados do tipo LIFO (Last In, First Out), o que significa que o último elemento a ser empilhado é o primeiro a ser desempilhado.

Análise da alternativa A:

A sequência de operações na alternativa A é: DP – E3Q – DP – E2R – DQ – E3R – DP – E1R.

Vamos detalhar essa sequência:

  • DP: Desempilha 3 da pilha P (restam 1 e 2 em P).
  • E3Q: Empilha 3 na pilha Q.
  • DP: Desempilha 2 da pilha P (resta 1 em P).
  • E2R: Empilha 2 na pilha R.
  • DQ: Desempilha 3 da pilha Q.
  • E3R: Empilha 3 na pilha R (agora R tem 2 e 3).
  • DP: Desempilha 1 da pilha P (P fica vazia).
  • E1R: Empilha 1 na pilha R (R fica com 2, 3, 1).

Portanto, essa sequência resulta na ordem correta (2, 3, 1) na pilha R.

Análise das alternativas incorretas:

Alternativa B: A sequência é DP – E3R – DP – E2R – DP – E1R.

Aqui, todos os elementos são empilhados diretamente na pilha R, resultando na ordem 3, 2, 1 (1 no topo), o que não está correto.

Alternativa C: A sequência é DP – E3Q – DP – E2Q – DQ – DP – E1R.

Neste caso, ao final da operação, a pilha R conteria apenas o elemento 1, porque 3 e 2 foram empilhados e desempilhados na pilha Q, e não foram corretamente reorganizados para a pilha R.

Alternativa D: A sequência é DP – E3Q – DP – E2R – DP – E1R – DQ – E3R.

A ordem final resultante seria 1, 2, 3 na pilha R, pois 3 é desempilhado e empilhado por último, não atendendo ao enunciado.

Alternativa E: A sequência é DP – E3R – DP – E2Q – DQ – E2R – DP – E1R.

Essa sequência também não resulta na ordem correta na pilha R. O elemento 2 é empilhado e desempilhado na pilha Q, mas não resulta em 2, 3, 1 na pilha R.

Conclusão: A alternativa A é a única que, seguindo a sequência de operações de empilhamento e desempilhamento, resulta na ordem correta (2, 3, 1) na pilha R, com um mínimo de movimentos.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

Gab: A 
Pilhas:      P             Q                    R 
                3 DP                             E1R 
                2 DP                             E3E 
                1 DP     E3Q DQ          E2R

=)

Uma pilha é uma estrutura de dados que admite remoção de elementos e inserção de novos objetos.  Mais especificamente, uma  pilha (= stack)  é uma estrutura sujeita à seguinte regra de operação:  sempre que houver uma remoção, o elemento removido é o que está na estrutura há menos tempo. Em outras palavras, o primeiro objeto a ser inserido na pilha é o último a ser removido. Essa política é conhecida pela sigla LIFO (= Last-In-First-Out).

https://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html

Força Guerreiro!!!!!!

Como não em comando de obter valor de uma pilha (pop) e armazenar em uma variável para ser usado em outra (push), você pode desconsiderar as operações em filas diferentes da fila de destino, o que simplifica muito o problema.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo