Videolivro 3 - filas com uso de vetores

1. Filas

1.6. O método desenfileirar ()

Desenfileirar não é um procedimento tão simples.

Veja a figura a seguir, criada hipoteticamente, para representar os jogadores de um time de futebol em uma fila de espera para receber o uniforme do time.

filatotal1

Como podemos notar, o José foi o primeiro a chegar, enquanto Cróvis foi o último.

Veja na próxima figura o que acontece quando José recebe seu uniforme e, portanto, sai da fila:

posicao0vazia

A posição 0, que era aquela ocupada pelo José, ficou vazia. Com isso, necessitamos mover todos os jogadores uma posição para a frente, de tal forma que a última posição (a de número 5) é que deve ficar vazia. Assim:

posicao5vazia

Quando o próximo jogador sair da fila (que é o Márcio), novamente a fila se move uma posição para a frente, de tal forma que as duas últimas ficarão vazias, conforme mostra a próxima figura:

duasposicoesvazias

O procedimento deve então fazer com que todos os elementos movam uma posição para frente, sempre que alguém sair da fila.

Como em uma fila o primeiro a entrar é o último a sair e, sabemos que o primeiro está sempre na posição 0, basta considerar que, a cada saída, a última posição do vetor diminui de um (lembre-se: a última posição, não o tamanho do vetor, que permanece o mesmo) e todos os elementos são "empurrados" para frente.