lista singly legate în JavaScript
pentru a avea o înțelegere clară a listei singly legate, voi pune în aplicare clasa LinkedList în JavaScript.
fiecare nod al listei legate va avea două atribute: valoare& următor, iar lista legată va avea atributul cap, coadă și lungime.
Push
cum putem împinge un nou nod în sfârșitul listei noastre? Să facem o funcție de împingere. În primul rând, trebuie să creăm un nou nod folosind valoarea dată, să verificăm dacă Lista are un cap (este goală?) și nu uitați să măriți dimensiunea listei.
Pop
cu împingerea, trebuie să ne gândim la popping, ștergerea ultimului element. Dacă nu există un nod, reveniți nedefinit, altfel, treceți prin listă până ajungem la coadă, setați următoarea proprietate a celui de-al doilea ultim nod să fie nulă, faceți ca al doilea ultim să fie coada, nu uitați să decrementați dimensiunea listei.
Shift
pentru ștergerea primului element, schimbarea, ca de obicei, verificați dacă lista este goală. Mai întâi, stocați capul curent într-o variabilă, setați capul să fie următorul capului curent, decrementați lungimea.
Unshift
pentru a insera un nod la începutul listei, verificați dacă lista este goală, dacă nu, setăm capul curent pentru a următorul atribut al nodului de intrare, Creșteți dimensiunea.
Get
chiar dacă lista legată nu are indexuri, suntem încă capabili să găsim nodul după indexul dat. Mai întâi asigurați-vă că indicele dat este mai mare decât zero și mai mic sau egal cu lungimea listei. Decât să parcurgem lista până ajungem la index.
Set
Ce se întâmplă dacă vrem să schimbăm un nod în lista noastră? Găsim nodul cu get () și setăm nodul cu date date.
Inserare
când dorim să introducem un nod nou în listă, verificați mai întâi dacă indicele este mai mare de 0 și mai mic decât lungimea. Dacă indicele este lungimea, vom folosi doar push (), în cazul în care indicele este 0, vom folosi unshift (). Pentru alți indici, trebuie să obținem nodul la index-1 și să setăm următoarea proprietate a acelui nod să fie noul nod, iar următoarea proprietate a noului nod să fie proprietatea următoare anterioară, apoi incrementăm lungimea.
Remove
spre deosebire de pop și unshift, funcția remove va elimina nodul de index dat. Ca de obicei, verificați dacă indexul este valid, dacă indexul este egal cu lungimea-1 sau 0, utilizați pop sau shift. În caz contrar, obținem nodul la index-1, setăm următoarea proprietate pe acel nod pentru a fi următoarea proprietate următoare, după aceea, decrementăm dimensiunea.
Reverse
Ultima întrebare inversă! Cum inversăm lista? În primul rând, schimbăm capul și coada, declarăm următorul și Precedentul, setăm precedentul ca nul. Trecem prin listă.