What is a Doubly Linked List?
Lição 2 de 14 do curso Lista Duplamente Encadeada - Série de Estruturas de Dados #6 da Coddy.
Uma lista duplamente encadeada é uma sequência de nós onde cada nó carrega um valor e dois ponteiros: prev para o nó anterior, e next para o próximo nó. A lista em si mantém o controle de ambas as extremidades, a head (primeiro nó) e a tail (último nó).
Os dois ponteiros por nó e a referência extra tail nos trazem muitas vantagens. Adicionar ao final agora é O(1) (pula-se direto para a tail em vez de percorrer a corrente), e remover o último nó também é O(1) (porque podemos alcançar o penúltimo nó a partir de tail.prev). A contrapartida é mais memória por nó, além de mais ponteiros para manter sincronizados em cada inserção e remoção.
As cinco operações principais em uma lista duplamente encadeada são:
- AddFirst: Adiciona um valor na frente da lista.
- AddLast: Adiciona um valor ao final da lista (O(1)!).
- Get: Retorna o valor em um determinado índice.
- RemoveLast: Exclui o último nó (O(1)!).
- Size: Retorna o número de nós armazenados atualmente.
Vamos criar uma classe Node primeiro, e depois construir a DoublyLinkedList sobre ela!
Experimente você mesmo
Esta lição não inclui um desafio de código.
Todas as lições de Lista Duplamente Encadeada - Série de Estruturas de Dados #6
Pratique por conta própria: Compilador de C online