Computação Múltipla Escolha

Considere a seguinte classe e o seguinte fragmento de código que utiliza essa classe. Qual seria o output se C fosse uma fila?

Considere a seguinte classe e o seguinte fragmento de código que utiliza essa classe. Qual seria o output se C fosse uma fila?

  1. Tom
  2. Dick
  3. Harry
  4. Moe
  5. Não existe informação suficiente

Resolução completa

Explicação passo a passo

B
Alternativa B

Alternativa B - Dick

Análise da Estrutura de Dados

A questão pergunta sobre o comportamento de saída (output) quando a classe genérica C é implementada como uma Fila (Queue).

Para entender a resposta, precisamos revisar o princípio fundamental das filas:

  • FIFO (First In, First Out): Primeiro que entra, primeiro que sai.
  • Os elementos são adicionados na parte traseira (back) e removidos pela frente (front).

Rastreamento do Código

Vamos analisar passo a passo o que acontece com a variável words no método main:

1. Inserções (Enqueue)

Os itens são inseridos na ordem apresentada no código:

  1. "Tom" entra.
  2. "Dick" entra atrás de Tom.
  3. "Harry" entra atrás de Dick.
  4. "Moe" entra atrás de Harry.

Estado da Fila (Frente para Trás):

[ Tom | Dick | Harry | Moe ]

2. Remoções (Dequeue)

O código executa duas chamadas ao método remove():

  • Primeira remoção: string str = words.remove();
  • O elemento na frente é removido: "Tom".
  • Variável str recebe "Tom".
  • Estado da Fila: [ Dick | Harry | Moe ]
  • Segunda remoção: str = words.remove();
  • O novo elemento na frente é removido: "Dick".
  • Variável str é sobrescrita com "Dick".
  • Estado da Fila: [ Harry | Moe ]

3. Saída (Output)

  • cout << str << endl; imprime o valor atual de str.
  • Como str foi atualizado na segunda remoção, o valor impresso é "Dick".

Comparação com Pilha (Stack)

Se a estrutura fosse uma Pilha (LIFO - Last In, First Out), a lógica seria inversa:

  1. Primeira remoção tiraria "Moe".
  2. Segunda remoção tiraria "Harry".
  3. O resultado seria "Harry" (Alternativa C).

Porém, como o enunciado especifica Fila, mantemos a lógica FIFO.

Conclusão

Considerando a ordem de entrada e a política de primeira entrada/saída da fila, o segundo elemento removido corresponde à segunda letra do alfabeto dos nomes inseridos.

Portanto, a alternativa correta é a B.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.