Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FAURGS 2018

Algoritmos e Estrutura de DadosEstrutura de Dados
Código
qq337152
Banca
FAURGS
Órgão
UFRGS
Ano
2018
Nível
Médio
Cargo
Técnico de Tecnologia da Informação - Sistema da Informação
A maioria dos softwares de aplicação possui comandos de "Desfazer" e "Refazer". O primeiro desfaz a última operação ou texto digitado, enquanto que, o segundo refaz uma operação ou texto desfeito, conforme sugerem os nomes dos comandos.Internamente, nos softwares, podem ser usadas duas estruturas de dados que armazenam as sucessivas operações de "Desfazer" e "Refazer", de modo que o próximo "Refazer" sempre recupera o último "Desfazer". Os tipos de estrutura de dados que podem ser usados para "Desfazer" e "Refazer" são, respectivamente:
  1. AFila e Fila
  2. BFila e Pilha
  3. CPilha e Fila
  4. DPilha e Pilha
  5. EPilha e Fila duplamente encadeada
Revelar gabarito e comentário

GabaritoD — Pilha e Pilha

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”.

Desfazer e Refazer: Estruturas de Dados

Gabarito: letra D. As operações de "Desfazer" (Undo) e "Refazer" (Redo) são implementadas internamente com pilhas (stacks), ambas seguindo o princípio LIFO (Last In, First Out). O comando Desfazer remove a última operação do topo da pilha de ações; o Refazer recupera essa operação, movendo-a de volta para a pilha de desfazer. Portanto, as estruturas adequadas são pilha para Desfazer e pilha para Refazer.

A banca testa o conhecimento sobre o comportamento das estruturas de dados lineares: pilha (LIFO) e fila (FIFO). Como as operações de desfazer/refazer exigem acesso ao elemento mais recente (o último inserido), a pilha é a escolha natural.

Desfazer/Refazer
  • 1Estrutura: Pilha (LIFO)
    • Desfazer
      • Última ação removida
      • Vai para pilha de refazer
    • Refazer
      • Último desfeito recuperado
      • Volta para pilha de desfazer
  • 2Por que não Fila?
    • FIFO acessa o primeiro
    • Desfazer exige o último
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

Afirma que ambas as estruturas são filas. Filas operam em FIFO (First In, First Out), o que não atende à necessidade de acessar a última operação realizada. O primeiro a entrar seria o primeiro a ser desfeito, o que inverte a lógica esperada.

Alternativa B — ❌ Incorreta

Sugere fila para Desfazer e pilha para Refazer. A fila não é adequada para Desfazer, pois desfazer exige remover o último elemento, e não o primeiro. Apenas a segunda parte (pilha para Refazer) está correta.

Alternativa C — ❌ Incorreta

Propõe pilha para Desfazer (correto) e fila para Refazer (incorreto). Refazer também precisa de acesso ao último desfeito, que é o topo de uma pilha, não o início de uma fila.

Alternativa D — ✅ Correta ⟵ GABARITO

Ambas as operações utilizam pilhas. O Desfazer empurra as ações para uma pilha; ao desfazer, a ação é retirada da pilha de desfazer e colocada na pilha de refazer. O Refazer faz o caminho inverso. Ambas seguem LIFO.

Alternativa E — ❌ Incorreta

Fila duplamente encadeada ainda é uma fila (FIFO), não adequada para Refazer. Embora a implementação seja diferente, a ordem de remoção continua sendo FIFO, o que não serve para recuperar o último desfeito.

Gabarito: letra D.

Link permanente: /questoes/qq337152