Felipe, também achei a questão meio chata de resolver, mas segue como chegar à resposta.
Imagine uma fila de caixa de banco. Considere que a letra 'O' é uma pessoa na fila. A seguir, temos 4 pessoas na fila.
null - O - O - O - O
O
quarto O, lendo da esquerda para a direita, que está em negrito e
sublinhado é o primeiro da fila, e seria o no ini da questão.
O primeiro O, lendo da esquerda para a direita, que está em negrito e itálico é o último da fila, e seria o no fin da questão.
As
setas representam a referência ao No prox. Elas andam para trás, pois
consideram que o início da fila é a primeira pessoa à direita, logo, o
próximo a ser atendido, é o que está imediatamente atrás, ou seja, à
esquerda. Assim, o terceiro O é o No prox do quarto O, o segundo O é o
No prox do terceiro O, e assim por diante. A lógica da fila é está,
então, vamos às alternativas.
A) fin = n;
fin.prox = n;
Perceba
que estas duas linhas não formam uma fila corretamente. Supondo que n
seja uma pessoa nova que chega na fila, os comandos acima, fazem o fim
da fila apontar para essa nova pessoa (ok), e fazem a referência ao
próximo apontar para essa mesma pessoa, criado um ciclo. É como se essa
nova pessoa na fila fosse a última pessoa e o próximo depois dela fosse
ela mesma, entende? Não faz sentido. Errada.
B) O comando for
assusta, mas ele está somente caminhando entre os nós. Considerando
nosso exemplo, o ant iria "andando" por entre as pessoas da fila, e
terminaria apontando para a última pessoa da fila. Na verdade, não
precisaria perder tempo nesse for, o que invalida de cara a questão, são
as linhas:
n.prox = ini;
ini = n;
Em nosso exemplo, n é a
pessoa nova que está chegando na fila do caixa. O comando n.prox = ini,
está dizendo que o próximo depois dessa pessoa nova que chegou na fila é
a primeira pessoa da fila, isto é, ini. E o comando ini = n, está
colocando essa pessoa que acabou de chegar no início da fila. Ou seja,
fere o conceito de fila, pois o que está sendo feito é colocar a pessoa
que acabou de chegar no início da fila, e aquela que já estava lá no
início antes, passou a ser a próxima a ser atendida depois que essa
novata chegou.
Isso não é fila, isso seria uma pilha. Errada.