Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — IV - UFG 2023

Algoritmos e Estrutura de DadosEstrutura de Dados
Código
qq975821
Banca
IV - UFG
Órgão
UFG
Ano
2023
Nível
Médio
Cargo
IV - - Técnico de Tecnologia da Informação
Considere duas estruturas de dados do tipo pilha, denominadas A e B, com as sequências de valores (11, 33, 22) e (44, 22, 11) respectivamente, em que o elemento mais à direita de cada sequência refere-se ao topo da pilha. Sejam as operações: (i) desempilha(P), que remove um elemento da pilha P e retorna esse elemento; (ii) empilha(P, E), que insere o elemento E na pilha P; e (iii) topo(P), que retorna o elemento que está no topo da pilha P. Após executar a expressão “empilha(B, desempilha(A) + desempilha(A) - desempilha(B) + topo(B))”, a sequência de elementos de B será:
  1. A(44, 22, 33).
  2. B(44, 22, 44).
  3. C(44, 22, 55).
  4. D(44, 22, 66).
Revelar gabarito e comentário

GabaritoD — (44, 22, 66).

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Estruturas de Dados: Pilhas — Operações e Expressão Aritmética

Gabarito: letra D. Após simular passo a passo as operações da expressão, o valor empilhado em B é 66, resultando na sequência (44, 22, 66).

A questão testa a compreensão do comportamento LIFO (Last In, First Out) das pilhas, bem como a ordem de avaliação das operações. Vamos executar detalhadamente.

Estado inicial das pilhas

  • A: base (11, 33, topo: 22) → a sequência da esquerda para a direita é base → topo.

  • B: base (44, 22, topo: 11).

Execução da expressão empilha(B, desempilha(A) + desempilha(A) - desempilha(B) + topo(B))

A expressão dentro de empilha é calculada primeiro. As operações de desempilha e topo são avaliadas na ordem em que aparecem (da esquerda para a direita):

  1. desempilha(A): remove o topo de A (22) e retorna 22. A passa a ser (11, 33).

  2. desempilha(A): remove o novo topo de A (33) e retorna 33. A passa a ser (11).

  3. desempilha(B): remove o topo de B (11) e retorna 11. B passa a ser (44, 22).

  4. topo(B): retorna o topo de B (22), sem remover. B permanece (44, 22).

Calculando a expressão aritmética: 22 + 33 - 11 + 22 = 66.

  1. empilha(B, 66): insere 66 no topo de B. B final: (44, 22, 66).

  1. 1desempilha(A) → 22
  2. 2desempilha(A) → 33
  3. 3desempilha(B) → 11
  4. 4topo(B) → 22
  5. 522+33-11+22 = 66
  6. 6empilha(B, 66)
LEVEL · soulevel.com.br

Análise das alternativas

  • Alternativa A — ❌ Incorreta. (44, 22, 33) – O valor 33 foi desempilhado de A e não empilhado em B; o resultado é 66, não 33.

  • Alternativa B — ❌ Incorreta. (44, 22, 44) – O valor 44 não aparece no cálculo; resultado 44 seria obtido se a expressão fosse apenas 22+22, mas há mais operações.

  • Alternativa C — ❌ Incorreta. (44, 22, 55) – Valor 55 corresponderia a 22+33, mas faltam as operações com B (-11 e +22).

  • Alternativa D — ✅ Correta ⟵ GABARITO** (44, 22, 66) – Sequência correta conforme a simulação.

PEGA ESSA DICA!

Em problemas com pilhas, simule cada operação passo a passo, mantendo o controle do topo após cada remoção/inserção. Lembre-se: desempilha remove e retorna; topo apenas consulta. A ordem de avaliação dos operandos é crucial – vá da esquerda para a direita.

Gabarito: letra D.

Link permanente: /questoes/qq975821