Questões de Filas (Algoritmos e Estrutura de Dados)

Limpar Busca

Em algoritmos, as filas são estruturas de dado do tipo:

  • A PEAP.
  • B ILO.
  • C FIFO.
  • D BCOD.
  • E FILO.
Ao lidar com estruturas de dados do tipo, lista, fila, pilha e árvores, quando se trata de acesso a elementos em ordem específica, como exemplo: FIFO (First In, First Out), ou seja, primeiro a entrar, primeiro a sair, e LIFO (Last In, First Out), ou seja, último a entrar, primeiro a sair. Com base neste conceito, assinale qual a estrutura mais adequada.
  • A Árvore para FIFO e Lista para LIFO
  • B Lista para FIFO e Fila para LIFO
  • C Árvore para LIFO e Fila para FIFO
  • D Fila para FIFO e Pilha para LIFO

Suponha que queiramos inserir o dado de valor ‘13’ na fila. Considerando ULTIMO=4 e TOPO=8, após a inserção, teremos, com os dados listados na ordem padrão da fila (do mais antigo para o mais recente), a seguinte configuração:

  • A Dados da fila: 13,0,1,21,5,7,9; índices dos elementos livres: 3,9,8.
  • B Dados da fila: 0,1,21,5,7,9,13; índices dos elementos livres: 8,3,9.
  • C Dados da fila: 9,5,-1,0,7,16,13; índices dos elementos livres: 8,3,9.
  • D Dados da fila: 13,9,5,-1,0,7,16; índices dos elementos livres: 3,9,6.
  • E e) Dados da fila: 9,7,5,21,1,0,13; índices dos elementos livres: 3,9,6.

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

  • A inserção na fila de dados.
  • B deleção na fila de dados.
  • C inserção na pilha de elementos livres.
  • D deleção na pilha de elementos livres.
  • E deleção em ambas, fila de dados e pilha de elementos livres.

Considere a implementação de uma fila (FIFO) de forma estática (array) com indexação circular, iniciando em 0 e finalizando no índice N-1, onde N é o tamanho do array. Seja Ins o índice da posição livre na qual a próxima inserção na fila deve ocorrer; seja Prim o índice do elemento mais antigo a permanecer na fila; e seja (A MOD B) o resto da divisão inteira de A por B. Com base nesses dados, analise as afirmações a seguir.

1) Para inserção, caso a fila não esteja cheia, atribuímos o elemento ao array na posição Ins e, em seguida, atribuímos a Ins o valor de (Ins MOD N)+.
2) Para deleção, caso a fila não esteja vazia, atribuímos a Prim o valor de ((Prim+1) MOD N).
3) Se Prim=Ins, podemos concluir que a fila está vazia.
4) Se Prim=((Ins+1) MOD N), podemos concluir que a fila está cheia.

Estão corretas:

  • A 1 e 2, apenas.
  • B 3 e 4, apenas.
  • C 1, 2 e 3, apenas.
  • D 2, 3 e 4, apenas.
  • E 1, 2, 3 e 4.