Üksikult lingitud loend vs kahekordselt lingitud loend
Lingitud loend on lineaarne andmestruktuur, mida kasutatakse andmete kogumise talletamiseks. Lingitud loend eraldab mälu oma elementidele eraldi oma mäluplokis ja üldine struktuur saadakse, ühendades need elemendid ahelas linkidena. Eraldi lingitud loend koosneb sõlmede jadast ja igal sõlmel on viide järgnevale sõlmele. Kahekordselt lingitud loend sisaldab sõlmede jada, milles iga sõlm sisaldab viidet järgmisele sõlmele ja ka eelmist sõlme.
Üksikult lingitud nimekiri
Igal üksikult ühendatud loendi elemendil on kaks välja, nagu on näidatud joonisel 1. Andmeväli sisaldab tegelikke salvestatud andmeid ja järgmine väli tähistab ahela järgmist elementi. Lingitud loendi esimene element salvestatakse lingitud loendi pealkirjana.
Joonis 2 kujutab kolme elemendiga üksikult ühendatud loetelu. Iga element salvestab oma andmed ja kõik elemendid, välja arvatud viimane, talletab viite järgmisele elemendile. Viimane element hoiab järgmisel väljal nullväärtust. Mis tahes loendi elemendile pääsete juurde, alustades otsast ja järgides järgmist kursorit, kuni vastate nõutavale elemendile.
Kahekordselt lingitud nimekiri
Igal kahepoolselt seotud loendi elemendil on kolm välja, nagu on näidatud joonisel 3. Sarnaselt eraldi ühendatud loendiga hoiab andmeväli tegelikke salvestatud andmeid ja järgmine väli sisaldab viidet järgmisele ahela elemendile. Lisaks sisaldab eelmine väli viidet ahela eelmisele elemendile. Lingitud loendi esimene element salvestatakse lingitud loendi pealkirjana.
Joonis 4 kujutab kahe elemendiga kahepoolselt ühendatud loetelu. Kõik vaheelemendid salvestavad viited esimesele ja eelmisele elemendile. Loendi viimane element hoiab järgmisel väljal nullväärtust ja loendi esimene element eelmisel väljal nullväärtust. Kahekordselt lingitud loendit saab edasi liikuda, järgides igas elemendis järgmisi viiteid, ja samamoodi saab seda edasi liikuda, kasutades iga elemendi eelnevaid viiteid.
Mis vahe on Singly Linked List ja Doubly Linked List??
Iga üksikult lingitud loendi element sisaldab viidet loendi järgmisele elemendile, samas kui iga kahekordselt seotud loendi element sisaldab viiteid nii järgmisele elemendile kui ka loendi eelmisele elemendile. Topeltühendusega loendites on loendi iga elemendi jaoks vaja rohkem ruumi ja elementaarsed toimingud, näiteks sisestamine ja kustutamine, on keerukamad, kuna neil tuleb käsitleda kahte viidet. Kuid kahekordse linkimisega loendid võimaldavad hõlpsamat manipuleerimist, kuna see võimaldab loendist edasi ja tagasi liikuda.