Considere a lista duplamente encadeada exibida a seguir. (1, 3, 0, “Verde”) (2, 4, 3, “Azul”) (3, 2, 1, “Amarelo”) (4, 0, 2, “Vermelho”) Cada elemento pertencente à lista é representado por uma quádrupla, com o seguinte formato: (<id>, <id do anterior>, <id do seguinte>, <conteúdo>). A ordem do conteúdo dos componentes, segundo a instância da lista apresentada, é:
- A)Amarelo, Verde, Azul, Vermelho;
Errada, porque a sequência não começa por Amarelo e ignora o encadeamento indicado pelos campos de anterior e seguinte.
- B)Azul, Verde, Vermelho, Amarelo;
Errada, porque a ordem dos conteúdos não segue os ponteiros da lista, misturando os elementos sem respeitar o nó inicial.
- C)Verde, Vermelho, Amarelo, Azul;
Errada, porque começa por Verde, mas Verde é o último nó da sequência ao seguir os links corretamente.
- D)Vermelho, Amarelo, Azul, Verde;
Errada, porque inverte a lógica do percurso e não corresponde à sequência obtida a partir do ponteiro do próximo.
- E)Vermelho, Azul, Amarelo, Verde.
Certa, porque a lista é percorrida a partir do nó com anterior igual a 0 e segue-se o campo seguinte: Vermelho, Azul, Amarelo, Verde.
Gabarito: E
Em uma lista duplamente encadeada, cada nó guarda quem vem antes e quem vem depois. Então, para descobrir a ordem dos elementos, o caminho mais seguro é procurar o nó inicial, que normalmente tem o campo do anterior igual a 0 ou nulo. Aqui, esse papel é do elemento 4, porque ele aponta para anterior = 0, ou seja, não tem ninguém antes dele. A partir daí, você segue pelo campo "seguinte": 4 aponta para 2, 2 aponta para 3, e 3 aponta para 1. Traduzindo os conteúdos: Vermelho, Azul, Amarelo, Verde. É como seguir placas de trânsito, sem inventar atalhos. O erro clássico é olhar apenas os números dos ids ou tentar ordenar pela posição do enunciado. Em estrutura de dados, o que manda é o encadeamento entre os nós, não a ordem em que eles foram escritos. A questão quer exatamente a sequência obtida percorrendo a lista pelo ponteiro do próximo. Por isso, o gabarito é a alternativa E. Ela reproduz a ordem correta dos conteúdos ao seguir o nó inicial até o fim da lista.