Na informática, a fila é uma estrutura onde os dados são inseridos no início e removidos do início. São estruturas conhecidas como First In, First Out (FIFO), que pode ser traduzido por Primeiro a Entrar, Primeiro a Sair.
Dado o trecho de código com a função fila_sair e a estrutura de dado fila.
void fila_sair() {
if (fila.ini == fila.fim) {
printf(“\nA fila está vazia, não há nada para remover!\n\n”);
system(“pause”);
} else {
int i;
for (i = 0; i < tamanho; i++) {
fila.dados[i] = fila.dados[i+1];
}
fila.dados[fila.fim] = 0;
fila.fim--;
}
}
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 5 2 1 8 4 6 0 0 0 0
Qual das alternativas a seguir corresponde ao vetor fila.dados corretamente após a execução do código a seguir:
fila_sair();
fila_sair();
Alternativas
Alternativa 1:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 0 0 1 8 4 6 0 0 0 0
Alternativa 2:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 5 2 1 8 4 6 0 0 0 0
Alternativa 3:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 1 8 4 6 0 0 0 0 0 0
Alternativa 4:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 1 8 1 8 4 6 0 0 0 0
Alternativa 5:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 0 8 1 8 4 6 0 0 0 0
Respostas
respondido por:
1
for (i = 0; i < tamanho; i++)
{
fila.dados[i] = fila.dados[i+1]; //Desloca cada elemento pra frente
}
fila.dados[fila.fim] = 0; //Zera a posição que sobrou
fila.fim--;
}
O código desloca todos os elementos para frente na fila . Ou seja, quando você remove um elemento da fila, os restantes assumem um índice uma unidade menor do que antes. Se estava em 3, vai para 2. Se estava em 2, vai para 1... Os espaços vazios no final são preenchidos com 0.
O comando "fila_sair()" é executado duas vezes:
ANTES DE EXECUTAR:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 5 2 1 8 4 6 0 0 0 0
EXECUTADO NA 1ª VEZ:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 2 1 8 4 6 0 0 0 0 0
EXECUTADO NA 2ª VEZ:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 1 8 4 6 0 0 0 0 0 0
>>RESPOSTA: Alternativa 3.
{
fila.dados[i] = fila.dados[i+1]; //Desloca cada elemento pra frente
}
fila.dados[fila.fim] = 0; //Zera a posição que sobrou
fila.fim--;
}
O código desloca todos os elementos para frente na fila . Ou seja, quando você remove um elemento da fila, os restantes assumem um índice uma unidade menor do que antes. Se estava em 3, vai para 2. Se estava em 2, vai para 1... Os espaços vazios no final são preenchidos com 0.
O comando "fila_sair()" é executado duas vezes:
ANTES DE EXECUTAR:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 5 2 1 8 4 6 0 0 0 0
EXECUTADO NA 1ª VEZ:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 2 1 8 4 6 0 0 0 0 0
EXECUTADO NA 2ª VEZ:
Índice = 0 1 2 3 4 5 6 7 8 9
Dados = 1 8 4 6 0 0 0 0 0 0
>>RESPOSTA: Alternativa 3.
Perguntas similares
6 anos atrás
6 anos atrás
6 anos atrás
8 anos atrás
8 anos atrás
8 anos atrás
9 anos atrás
9 anos atrás
9 anos atrás