Logo Passei Direto
Buscar

Informática

ESTÁCIO EAD
3 Marcar para revisão Em uma implementação de fila circular que utiliza um array de tamanho MAX, qual das seguintes expressões é a forma correta e mais eficiente para atualizar O indice fim após uma inserção, garantindo O reaproveitamento de espaço? A fim = fim + 1; B if (fim == MAX - 1) fim = 0; else fim = fim + 1; C fim = fim - 1; D fim = (fim + 1) % MAX; E fim = (fim % MAX) + 1;
User badge image
JJOKERS

há 6 dias

Respostas

User badge image

Ed Verified user icon

há 6 dias

Para atualizar o índice "fim" em uma implementação de fila circular utilizando um array de tamanho MAX, precisamos garantir que, ao chegar ao final do array, o índice volte ao início, permitindo o reaproveitamento do espaço. Vamos analisar as alternativas: a) `fim = fim + 1;` - Esta expressão não considera o limite do array e pode causar um estouro (overflow). b) `if (fim == MAX - 1) fim = 0; else fim = fim + 1;` - Esta expressão faz a verificação, mas é um pouco mais complexa do que o necessário. c) `fim = fim - 1;` - Esta expressão não é correta para uma inserção, pois está decrementando o índice. d) `fim = (fim + 1) % MAX;` - Esta expressão é a forma correta e mais eficiente, pois utiliza o operador módulo para garantir que o índice "fim" retorne ao início do array quando atingir o final. e) `fim = (fim % MAX) + 1;` - Esta expressão não é correta, pois pode resultar em um índice fora do limite do array. Portanto, a alternativa correta e mais eficiente para atualizar o índice "fim" após uma inserção em uma fila circular é: d) fim = (fim + 1) % MAX;

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Mais conteúdos dessa disciplina