Singly Linked List in JavaScript
ahhoz, hogy egy világos megértése singly linked list, én végre LinkedList osztály JavaScript.
a Linkelt lista minden csomópontjának két attribútuma lesz: value & next, a linkelt listának pedig fej, farok és hossz attribútuma lesz.
Push
hogyan tolhatunk be egy új csomópontot a listánk végére? Csináljunk egy push funkciót. Először létre kell hoznunk egy új csomópontot a megadott érték felhasználásával, ellenőriznünk kell, hogy a listának van-e feje (üres?) és ne felejtsd el növelni a lista méretét.
Pop
a nyomással gondolkodnunk kell az utolsó elem törlésén. Ha nincs csomópont, térjen vissza meghatározatlanra, különben hurkolja át a listát, amíg el nem érjük a farokot, állítsa a második utolsó csomópont következő tulajdonságát nullára, tegye a második utolsót farokká, ne felejtse el csökkenteni a lista méretét.
Shift
az első elem törléséhez, a váltáshoz, mint mindig, ellenőrizze, hogy a lista üres-e. Először tárolja az aktuális fejet egy változóban, állítsa be a fejet az aktuális fej következő helyére, csökkentse a hosszát.
Unshift
ha csomópontot szeretne beszúrni a lista elejére, ellenőrizze, hogy a lista üres-e, ha nem, akkor az aktuális fejet úgy állítjuk be, hogy az a bejövő csomópont következő attribútuma, növelje a méretet.
Get
annak ellenére, hogy a linkelt listában nincsenek indexek, még mindig képesek vagyunk megtalálni a csomópontot az adott index alapján. Először győződjön meg arról, hogy az adott index nagyobb, mint nulla, kisebb vagy egyenlő a lista hosszával. Aztán végigjárjuk a listát, amíg el nem érjük az indexet.
Set
mi van, ha meg akarunk változtatni egy csomópontot a listánkban? Megtaláljuk a csomópontot a get(), és állítsa be a csomópontot adott adatokkal.
Insert
amikor új csomópontot akarunk beszúrni a listába, először ellenőrizzük, hogy az index nagyobb-e 0-nál és kisebb-e a hossznál. Ha az index a hossz, akkor csak a push () – t használjuk, ha az index 0, akkor az unshift () – t használjuk. Más indexek, meg kell, hogy a csomópont az index-1, és állítsa be a következő tulajdonsága, hogy a csomópont, hogy az új csomópont, és a következő tulajdonsága az új csomópont, hogy az előző következő tulajdonság, akkor növeljük a hosszát.
Remove
a pop-tól és az unshift-től eltérően az eltávolítás funkció eltávolítja a csomópontot az adott index alapján. A szokásos módon ellenőrizze, hogy az index érvényes-e, ha az index egyenlő a hosszúsággal-1 vagy 0, használja a pop vagy a shift alkalmazást. Ellenkező esetben megkapjuk a csomópontot az index-1-nél, állítsuk be a csomópont következő tulajdonságát, hogy a következő tulajdonság következő legyen, miután csökkentjük a méretet.
fordított
a végső fordított kérdés! Hogyan fordítsuk meg a listát? Először cseréljük a fejet és a farokot, deklaráljuk a következőt és az előzőt, az előzőt nullára állítjuk. Végigjárjuk a listát.