Analise o algoritmo descrito a seguir e assinale a alternativa que descreve CORRETAMENTE sua operação.
Algoritmo3(q)
1 - se q.anterior=Null
2 - L←q.posterior
3 - q.posterior.anterior←Null
4 - senão
5 - p←q.anterior
6 - p.posterior←q.posterior
7 - se q.posterior≠Null
8 - q.posterior.anterior←p
a. O algoritmo 3 remove um elemento em uma lista duplamente ligada.
b. O algoritmo 3 remove um elemento em uma lista ligada.
c. O algoritmo 3 move um elemento em uma lista ligada.
d. O algoritmo 3 insere um elemento em uma lista duplamente ligada.
e. O algoritmo 3 insere um elemento em uma lista ligada.
Soluções para a tarefa
Resposta:
Letra B
Explicação:
Resposta:
a. O algoritmo 3 remove um elemento em uma lista duplamente ligada.
Explicação: Algoritmo para remoção em uma lista duplamente ligada
O primeiro passo para a operação de remoção é criar um ponteiro p e atribuir a ele o endereço do membro q.anterior. Em seguida, deve-se “conectar” as células vizinhas a q, para isso o membro p.posterior receberá o endereço de q.posterior e, caso a célula a ser removida não seja o final da lista, o membro q.posterior.anterior receberá o endereço em p. Veja que a notação considerada para identificar os membros das células pode ser utilizada em cascata, assim q.posterior.anterior se refere à célula seguinte a q e ao membro “anterior” dessa célula.
Um caso particular ocorre quando o elemento a ser removido é o primeiro da lista.
Nesse caso, o ponteiro L deve receber o endereço armazenado no membro q.posterior, que indica o segundo elemento da lista. Esse segundo elemento se tornará o primeiro com a remoção e deverá armazenar em seu membro “anterior” o valor Null.
1- se q.anterior=Null
2- L←q.posterior
3- q.posterior.anterior←Null
4- senão
5- p←q.anterior
6- p.posterior←q.posterior
7- se q.posterior≠Null
8- q.posterior.anterior←p