Lista simplesmente encadeada

1 resposta
ECO2004

Olá, pessoal!

Não é a primeira vez que tenho uma dúvida com relação a listas simplesmente encadeadas.

Por que a complexidade de inserção no final da lista é constante [O(1)], enquanto para remoção no final é n [O(n)] ?

Para inserir, o último item aponta para o novo último item. Esse novo ultimo item aponta para null.

Para remover, não seria ir direto para o último item, pegar o penúltimo e fazê-lo apontar para null e depois apagar o antigo último item?

Alguém me exclareça, por favor!

1 Resposta

ECO2004

ECO2004:
Olá, pessoal!

Não é a primeira vez que tenho uma dúvida com relação a listas simplesmente encadeadas.

Por que a complexidade de inserção no final da lista é constante [O(1)], enquanto para remoção no final é n [O(n)] ?

Para inserir, o último item aponta para o novo último item. Esse novo ultimo item aponta para null.

Para remover, não seria ir direto para o último item, pegar o penúltimo e fazê-lo apontar para null e depois apagar o antigo último item?

Alguém me exclareça, por favor!

Eu mesmo solucionei o problema…rs

Só para deixar resposta: Eu tenho que encontrar o penútimo item para fazê-lo apontar para null. Eu tenho o último item, mas para a lista simplesmente encadeada anda somente para um lado - para frente. Ela não consegue “voltar”. Assim, para encontrar tal penúltimo item, ela deve percorrer todo o vetor até achá-lo.

Por isso, complexidade n [O(n)].

Criado 18 de julho de 2011
Ultima resposta 18 de jul. de 2011
Respostas 1
Participantes 1