Elenco collegato singolarmente in JavaScript
Per avere una chiara comprensione della lista collegata singolarmente, implementerò la classe LinkedList in JavaScript.
Ogni nodo della lista Collegata avrà due attributi: value& next, e la lista collegata avrà l’attributo head, tail e length.
Push
Come possiamo spingere un nuovo nodo alla fine della nostra lista? Facciamo una funzione push. Innanzitutto, dobbiamo creare un nuovo nodo usando il valore dato, controllare se l’elenco ha una testa (è vuoto?) e non dimenticare di incrementare la dimensione della lista.
Pop
Con pushing, dobbiamo pensare a popping, eliminando l’ultimo elemento. Se non c’è nessun nodo, restituisci undefined, else, fai scorrere l’elenco fino a raggiungere la coda, imposta la proprietà successiva del penultimo nodo come null, fai in modo che il penultimo sia la coda, non dimenticare di decrementare la dimensione dell’elenco.
Shift
Per eliminare il primo elemento, spostando, come al solito, controllare se l’elenco è vuoto. In primo luogo, memorizzare la testa corrente in una variabile, impostare la testa per essere la testa corrente del prossimo, decrementare la lunghezza.
Unshift
Per inserire un nodo all’inizio dell’elenco, verificare se l’elenco è vuoto, se non abbiamo impostato l’attuale capo di essere il prossimo attributo di arrivo nodo, incrementare la misura.
Get
Anche se la lista collegata non ha indici, siamo ancora in grado di trovare il nodo per indice dato. Per prima cosa assicurati che l’indice dato sia maggiore di zero e minore o uguale alla lunghezza dell’elenco. Di quanto scorriamo la lista fino a raggiungere l’indice.
Imposta
Cosa succede se vogliamo cambiare un nodo nella nostra lista? Troviamo il nodo con get () e impostiamo il nodo con dati dati.
Inserisci
Quando si desidera inserire un nuovo nodo nella lista, in primo luogo verificare se l’indice è maggiore di 0 e minore della lunghezza. Se index è la lunghezza, usiamo solo push (), se l’indice è 0, usiamo unshift (). Per altri indici, dobbiamo ottenere il nodo all’indice-1 e impostare la proprietà next di quel nodo come nuovo nodo e la proprietà next del nuovo nodo come precedente proprietà next, quindi incrementiamo la lunghezza.
Rimuovi
A differenza di pop e unshift, la funzione rimuovi rimuoverà il nodo in base all’indice specificato. Come al solito, controlla se l’indice è valido, se l’indice è uguale a length-1 o 0, usa pop o shift. Altrimenti, otteniamo il nodo all’indice-1, impostiamo la proprietà next su quel nodo come la prossima della proprietà next, dopo, decrementiamo la dimensione.
Reverse
L’ultima domanda inversa! Come invertiamo la lista? Per prima cosa, scambiamo testa e coda, dichiariamo successivo e precedente, impostiamo il precedente come nullo. Scorriamo la lista.