Enkelt Lenket Liste I JavaScript
for å få en klar forståelse av enkelt lenket liste, vil jeg implementere LinkedList klasse I JavaScript.
Hver node I Koblet liste vil ha to attributter: verdi & neste, og koblet liste vil ha attributt for hode, hale og lengde.
Trykk
Hvordan kan vi skyve en ny node inn i slutten av listen vår? La oss lage en push-funksjon. Først må vi opprette en ny node ved hjelp av den oppgitte verdien, sjekk om listen har et hode(er det tomt ?) og ikke glem å øke størrelsen på listen.
Pop
med å skyve, må vi tenke på å poppe, slette det siste elementet. Hvis det ikke er noen node, returner udefinert, ellers, sløyfe gjennom listen til vi når halen, sett den neste egenskapen til den nest siste noden til å være null, gjør den nest siste til å være halen, ikke glem å redusere størrelsen på listen.
Skift
for å slette det første elementet, skift, som vanlig, sjekk om listen er tom. Først lagrer du det nåværende hodet i en variabel, sett hodet til å være det nåværende hodets neste, reduser lengden.
Unshift
neste attributt for innkommende node, øke størrelsen.
Få
Selv om lenket liste ikke har indekser, kan vi fortsatt finne noden ved gitt indeks. Først må du kontrollere at den oppgitte indeksen er større enn null og mindre eller lik lengden på listen. Enn vi går gjennom listen til vi når indeksen.
Sett
Hva om vi vil endre en node i listen vår? Vi finner noden med get (), og setter noden med gitte data.
Sett inn
når vi vil sette inn en ny node i listen, må du først sjekke om indeksen er større enn 0 og mindre enn lengden. Hvis indeksen er lengden, bruker vi bare push (), hvis indeksen er 0, bruker vi unshift (). For andre indekser må vi få noden på index-1, og angi neste egenskap for den noden til å være den nye noden, og den neste egenskapen til den nye noden til å være den forrige neste egenskapen, så øker vi lengden.
Fjern
i Motsetning til pop og unshift, fjerner funksjonen noden ved gitt indeks. Som vanlig, sjekk om indeksen er gyldig, hvis indeksen er lik lengde-1 eller 0, bruk pop eller shift. Ellers får vi noden på index-1, sett neste eiendom på den noden for å være den neste av neste eiendom, etter at vi reduserer størrelsen.
Omvendt
det ultimate omvendte spørsmålet! Hvordan reverserer vi listen? Først bytter vi hode og hale, erklærer neste og forrige, sett forrige som null. Vi går gjennom listen.