

Seu próximo nível começa aqui
Seu desenvolvimento não pode ter limites. Garanta sua Assinatura Ilimitada e libere uma preparação completa com os melhores professores do Brasil.
AS QUESTÕES 39 E 40 TÊM POR BASE O CONTEXTO A SEGUIR.
Considere a implementação de uma fila (FIFO) de forma estática (array) com indexação entre 1 e 10, utilizando encadeamento simples nos campos do array, desobrigando, assim, que os elementos da fila estejam numa sequência de posições adjacentes do array. As posições livres são guardadas na forma de uma pilha (FILO), para facilitar a implementação. Neste exemplo em particular, cada elemento do array possui dois campos: o campo de dados (DADOS) e o índice do próximo elemento da estrutura (PROX), ou seja, o índice do elemento cuja inserção ocorreu imediatamente antes do referido elemento, para ambas: a fila e a pilha de elementos livres. O índice do último elemento inserido na fila de dados está na variável ULTIMO, e o índice do topo da pilha de elementos livres está na variável TOPO. O elemento mais antigo na fila de dados ou na pilha de posições livres é indicado por PROX= −1. Suponha que, após múltiplas inserções e deleções, ficamos com a configuração ilustrada na figura a seguir.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | |
DADOS ⇒ | 9 | 5 | -1 | 0 | 7 | 16 | 1 | -6 | 5 | 21 |
PROX ⇒ | -1 | 5 | 9 | 7 | 1 | -1 | 10 | 3 | 6 | 2 |
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
inserção na fila de dados.
deleção na fila de dados.
inserção na pilha de elementos livres.
deleção na pilha de elementos livres.
deleção em ambas, fila de dados e pilha de elementos livres.