Utilizaremos esta convenção gráfica para filas: fila = { primeiro,... , último}
Considere os métodos clássicos enqueue, dequeue e peek (peek retorna o elemento na frente da fila, sem eliminá-lo).
Seja uma fila, inicialmente com os elementos a seguir:
fila = { 8, 5, 3, 4 }
Considere que executamos estas operações com a fila anterior:
f.enqueue("12");
f.enqueue("11");
f.enqueue("9");
Object a = f.dequeue();
Object b = f.dequeue();
f.enqueue(a);
f.enqueue(b);
f.enqueue(f.dequeue());
f.enqueue("27");
Qual será o estado final da fila, depois de executar os comandos antes mencionados?
A. fila = { 4, 12, 11, 9, 8, 3, 27 }.
B. fila = { 11, 9, 8, 5, 3, 27 }.
C. fila = { 9, 8, 5, 3, 27 }.
D. fila = { 4, 12, 11, 9, 8, 5, 3, 27 }.
E. fila = { 4, 11, 9, 8, 5, 3, 27 }.
Soluções para a tarefa
Olá!
Inicialmente a nossa fila (f) tem os seguintes valores {8,5,3,4}
O comando enqueue("A") faz com que o valor "A" vá para o final da fila, e o comando dequeue() retorna o primeiro valor da fila, ou seja, o que está a mais tempo nela.
Portanto:
Vamos executar cada comando e ver como a fila se comporta.
1°)f.enqueue("12");
f = {8,5,3,4,12}
2°)f.enqueue("11");
f = {8,5,3,4,12,11}
3°)f.enqueue("9");
f = {8,5,3,4,12,11,9}
4°)Object a = f.dequeue();
f = {5,3,4,12,11,9}
a=8
5°)Object b = f.dequeue();
f = {3,4,12,11,9}
b=5
6°)f.enqueue(a);
f = {3,4,12,11,9,8}
7°)f.enqueue(b);
f = {3,4,12,11,9,8,5}
8°)f.enqueue(f.dequeue());
Nessa parte, O primeiro elemento da fila é levado para a última posição
f = {4,12,11,9,8,5,3}
9°)f.enqueue("27");
f = {4,12,11,9,8,5,3,27}
Portanto, a resposta é a letra D
Espero ter ajudado!