Questão de Algoritmos e Estrutura de Dados — Estrutura de Dados — FADE - UFPE 2023
Algoritmos e Estrutura de Dados›Estrutura de Dados
Código
qq866889
Banca
FADE - UFPE
Órgão
UFPE
Ano
2023
Nível
Superior
Cargo
FADE - - Analista de Tecnologia da Informação - Área: Sistemas
Muitas vezes o uso de encadeamento simples acarreta a necessidade de incluir um comando de repetição (laço) para fazer um ponteiro (ou indexador) percorrer a estrutura a partir do início até ele se posicionar no penúltimo elemento da estrutura, demandado possivelmente por uma inserção e/ou uma deleção. No exemplo em questão, pela forma de implementação escolhida, podemos afirmar que isso ocorre sempre que se fizer uma operação de
Ainserção na fila de dados.
Bdeleção na fila de dados.
Cinserção na pilha de elementos livres.
Ddeleção na pilha de elementos livres.
Edeleção em ambas, fila de dados e pilha de elementos livres.
Revelar gabarito e comentário▾
GabaritoB — deleção na fila de dados.
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: Fila e Pilha com Encadeamento Simples
SE LIGUE NESSA!
Esta questão depende de um texto-base não disponível. O raciocínio abaixo explica o método e conclui conforme o gabarito oficial (letra B).
Gabarito: letra B. A operação que sempre exige percorrer a lista até o penúltimo elemento é a deleção do último elemento de uma lista encadeada simples. Na implementação escolhida pela banca, essa operação corresponde à deleção na fila de dados.
A questão aborda o uso de encadeamento simples (lista ligada) e a necessidade de um laço para percorrer a estrutura até o penúltimo elemento. Essa necessidade surge tipicamente na remoção do último elemento, pois é preciso acessar o nó anterior ao último para atualizar seu ponteiro next para NULL.
Em estruturas como fila (FIFO) e pilha (LIFO), as operações padrão são:
Estrutura
Operação
Localização
Requer percorrer até o penúltimo?
Fila (dados)
Inserção (enqueue)
final
Não (precisa do último, não penúltimo)
Fila (dados)
Deleção (dequeue)
início
Não (usa o ponteiro head)
Pilha (livres)
Inserção (push)
topo (início)
Não
Pilha (livres)
Deleção (pop)
topo (início)
Não
No entanto, a banca considerou uma implementação específica na qual a deleção na fila de dados remove o último elemento (em vez do primeiro). Isso foge ao padrão, mas é a justificativa para que o laço até o penúltimo seja sempre necessário.
Alternativa A — ❌ Incorreta
Inserção na fila: mesmo sem ponteiro para o final, a inserção exige percorrer até o último elemento, não o penúltimo.
Alternativa B — ✅ Correta ⟵ GABARITO
Na implementação escolhida, a deleção na fila de dados remove o último elemento, o que obriga um percurso até o penúltimo para atualizar o ponteiro do anterior.
Alternativa C — ❌ Incorreta
Inserção na pilha: ocorre no topo (início), não requer percurso.
Alternativa D — ❌ Incorreta
Deleção na pilha: ocorre no topo (início), não requer percurso.
Alternativa E — ❌ Incorreta
Deleção em ambas: apenas a deleção na fila (na implementação considerada) demanda o penúltimo; a pilha não.
NÃO CAIA NESSA!
A banca inverte o comportamento padrão da fila: em vez de remover do início, a implementação remove do final, forçando o percurso até o penúltimo. Memorize: a operação que exige o penúltimo é SEMPRE a remoção do último em uma lista simplesmente encadeada.