Questão 2
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
else {
int i;
for (i = 0; i < tamanho; i++) {
fila.dados[i] = fila.dados[i+1];
}
fila.dados[fila.fim] = 0;
fila.fim--;
Quando chamamos a função fila_sair(), a posição do fila.dados[i] recebe a posição de i+1 ou seja tira a primeira posição do vetor traz os valores da direita para a esquerda e adiciona um 0 ao final do vetor.
FILA ATUAL:
ini topo
Índice = 0 1 2 3 4 5 6 7 8 9Dados= 5 2 1 8 4 6 0 0 0 0
fila_sair()
ini topo <- o topo moveu para a esquerda
Índice = 0 1 2 3 4 5 6 7 8 9Dados= 2 1 8 4 6 0 0 0 0 0 <- adicionou um 0
fila_sair()
ini topo <- moveu para a esquerda
Índice = 0 1 2 3 4 5 6 7 8 9Dados= 1 8 4 6 0 0 0 0 0 0 <- adicionou um 0
Podemos dizer que quando temos uma função fila_sair(), é fato que a posição do fila.dados[i] recebe a posição de i+1. Então, tira a primeira posição do vetor traz os valores da direita para a esquerda, além de adicionar um 0 ao final do vetor.
else {
int i;
for (i = 0; i < tamanho; i++) {
fila.dados[i] = fila.dados[i+1];
}
fila.dados[fila.fim] = 0;
fila.fim--;
FILA ATUAL:
ini topo
Índice = 0 1 2 3 4 5 6 7 8 9
Dados= 5 2 1 8 4 6 0 0 0 0
fila_sair()
ini topo <- o topo moveu para a esquerda
Índice = 0 1 2 3 4 5 6 7 8 9
Dados= 2 1 8 4 6 0 0 0 0 0 <- adicionou um 0
fila_sair()
ini topo <- moveu para a esquerda
Índice = 0 1 2 3 4 5 6 7 8 9
Dados= 1 8 4 6 0 0 0 0 0 0 <- adicionou um 0
Leia mais em:
brainly.com.br/tarefa/1983945