Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Quando se tem a referência o tempo é constante(lista duplamente encadeada)

O mesmo não acontece na lista simples ? Isso não seria igual para as duas ? (quando desejo excluir)

Se você tiver a referência em mãos da célula que será deletada, então o tempo é constante. Afinal, já que você tem anterior e proximo nas mãos, basta acertar as referências.

3 respostas
solução!

Fala aí Pedro, blz?

No caso de uma lista ligada, o tempo de remoção não é constante mesmo que tenhamos a referência da célula em mãos.

Mesmo com a referência da célula em mão precisamos percorrer a lista até chegar em uma célula que a ponte para a que temos em mãos.

Por exemplo Imagine que temos a seguinte lista ligada:

A1 -> A2 -> A3 -> A4 -> A5.

Agora imagine que queremos remover o elemento "A4" e temos uma referência para ele em mãos.

A partir do elemento "A4" só conseguimos ir para frente no nosso caso para o elemento "A5".

Então preciso percorrer minha lista procurando alguém que tenha como próximo o elemento "A4".

Nesse caso iriamos percorrer a lista até o elemento "A3" pois ele aponta para o "A4".

Agora com os dois elementos em mãos podemos mudar a referência do próximo elemento do "A3" para o próximo elemento do "A4" (que é o que queremos remover e) que no nosso caso é o "A5".

Pelo fato de termos que percorrer nossa lista o tempo não é constante.

Espero ter ajudado!

Verdade, Valeu Fernando.

Opa, precisando manda aí... =)

Bons estudos.