lista única ligada em JavaScript
para ter uma compreensão clara da lista única ligada, vou implementar classe LinkedList em JavaScript.
cada nó da lista ligada terá dois atributos: value & next, and linked list will have head, tail and length attribute.
Premir
Como podemos empurrar um novo nó para o fim da nossa lista? Vamos fazer um push funcionar. Primeiro, precisamos criar um novo nó usando o valor indicado, verificar se a lista tem uma cabeça (está vazia?) e não se esqueça de aumentar o tamanho da lista.
Pop
Com empurrando, precisamos pensar sobre o popping, excluindo o último elemento. Se não houver nenhum nó, retorne indefinido, senão, loop através da lista até chegarmos à cauda, defina a próxima propriedade do segundo último nó para ser nulo, faça o segundo último para ser a cauda, não se esqueça de decretar o tamanho da lista.
Shift
Para excluir o primeiro elemento, a mudança, como de costume, verifique se a lista está vazia. Primeiro, armazenar a cabeça atual em uma variável, definir a cabeça para ser a próxima da cabeça atual, decretar o comprimento.
Unshift
Para inserir um nó no início da lista, verifique se a lista está vazia, se não, vamos definir o atual chefe para ser o próximo atributo do nó de entrada, aumente o tamanho.
apesar de lista ligada não tem índices, ainda somos capazes de encontrar o nó por determinado índice. Primeiro certifique-se de que o índice indicado é maior que zero e menor ou igual ao comprimento da lista. Do que percorrer a lista até chegarmos ao índice.
Set
o Que se queremos mudar um nó na nossa lista? Nós encontramos o nó com o get(), e configuramos o nó com dados indicados.
Inserir
Quando queremos inserir um novo nó na lista, verifique, primeiro, se o índice for maior que 0 e menor do que o comprimento. Se o índice é o comprimento, nós apenas usamos push (), se o índice é 0, nós usamos unshift (). Para outros índices, precisamos obter o nó no índice-1 e defina a seguinte propriedade do nó para ser o novo nó, e a próxima propriedade do novo nó a ser o anterior próximo propriedade, em seguida, é aumentar o comprimento.
Remover
ao contrário do pop e unshift, remova a função de remover o nó por determinado índice. Como de costume, verifique se o índice é válido, se o índice for igual ao comprimento-1 ou 0, use pop ou shift. Caso contrário, nós obtemos o nó no índice-1, configuramos a próxima propriedade nesse nó para ser a próxima da próxima propriedade, depois, nós decretamos o tamanho.
Inverter
O ultimate inverter a pergunta! Como invertemos a lista? Primeiro, trocamos a cabeça e a cauda, declaramos o próximo e o anterior como nulo. Analisamos a lista.