Assinale a alternativa que completa corretamente as linhas 54, 55, 56, 57 e 58 de código do método de remoção de dados (item_type stack::dequeue()) em uma fila implementada como lista encadeada:
As linhas que completam o código estão na Alternativa A.
54 item_type item = front->info;
55 front = front->next;
56 if (front == NULL) {
57 rear = NULL;
58 }
O que é uma lista encadeada?
A lista encadeada, também chamada de lista ligada, é uma estrutura semelhante a uma corrente em que suas estruturas estão ligadas entre si sequencialmente.
Em uma lista encadeada:
Acessamos a lista através de um ponteiro para a primeira estrutura (cabeça ou front).
Cada estrutura contém um ponteiro para a estrutura seguinte.
O ponteiro da última estrutura tem valor prox NULL, indicando que a estrutura chegou ao fim.
Normalmente em uma lista encadeada, para cada novo elemento uma nova memória é alocada dinamicamente.
Ou seja, o espaço total de memória gasto pela estrutura é proporcional ao número de elementos que ela contém.
Em uma lista, cada elemento da estrutura contém:
Um dado
Uma referência (prox) para o próximo elemento.
Como completar o código do enunciado?
Queremos remover o primeiro item da fila implementada como lista (front).
A linha 51 verifica se a estrutura está vazia.
Caso não esteja, entramos na linha 52 e 53 que inicializam um ponteiro (pointer) e fazem ele apontar para o front.
Na sequência, na linha 54 devemos fazer com que a variável item receba a informação do front.
Ou seja, queremos que item receba o valor do primeiro item da fila.
54 item_type item = front->info;
Na linha 55 devemos fazer com que o ponteiro front aponte para o próximo item da estrutura. Ou seja, o segundo item irá se tornar o primeiro item da fila.
55 front = front->next;
Por fim, devemos verificar se a estrutura não chegou ao fim após a ultima operação.
Fazemos isso avaliando se o ponteiro front (que recebeu o próximo item da lista na linha 55) está vazio. Caso esteja, devemos fazer com que o fim da lista (rear) receba NULL também.
56 if (front == NULL) {
57 rear = NULL;
58 }
Portanto, a alternativa correta é a Alternativa A.
Lista de comentários
Resposta:
54 item_type item = front->info;
55 front = front->next;
56 if (front == NULL) {
57 rear = NULL;
58 }
Explicação:
Esse exemplo está nos arquivos fonte mas de outra forma, onde é usado a construção abaixo:
if (front == NULL)
rear = NULL;
Quando se tem apenas uma instrução após um IF não é necessário o uso de "{" e "}".
ItemType item = front->info;
front = front->next;
if (front == NULL)
rear = NULL;
A diferença para a questão em si é o Item_type e a colocaram chaves no if que é:
if (front == NULL){
rear = NULL;
}
As linhas que completam o código estão na Alternativa A.
54 item_type item = front->info;
55 front = front->next;
56 if (front == NULL) {
57 rear = NULL;
58 }
O que é uma lista encadeada?
A lista encadeada, também chamada de lista ligada, é uma estrutura semelhante a uma corrente em que suas estruturas estão ligadas entre si sequencialmente.
Em uma lista encadeada:
Normalmente em uma lista encadeada, para cada novo elemento uma nova memória é alocada dinamicamente.
Ou seja, o espaço total de memória gasto pela estrutura é proporcional ao número de elementos que ela contém.
Em uma lista, cada elemento da estrutura contém:
Como completar o código do enunciado?
Queremos remover o primeiro item da fila implementada como lista (front).
A linha 51 verifica se a estrutura está vazia.
Caso não esteja, entramos na linha 52 e 53 que inicializam um ponteiro (pointer) e fazem ele apontar para o front.
Na sequência, na linha 54 devemos fazer com que a variável item receba a informação do front.
Ou seja, queremos que item receba o valor do primeiro item da fila.
Na linha 55 devemos fazer com que o ponteiro front aponte para o próximo item da estrutura. Ou seja, o segundo item irá se tornar o primeiro item da fila.
Por fim, devemos verificar se a estrutura não chegou ao fim após a ultima operação.
Fazemos isso avaliando se o ponteiro front (que recebeu o próximo item da lista na linha 55) está vazio. Caso esteja, devemos fazer com que o fim da lista (rear) receba NULL também.
Portanto, a alternativa correta é a Alternativa A.
Saiba mais sobre Listas Encadeadas em:
https://brainly.com.br/tarefa/43248947
#SPJ2