Üksikult lingitud loend vs topelt lingitud loend
Lingitud loend on lineaarne andmestruktuur, mida kasutatakse andmekogumi salvestamiseks. Lingitud loend eraldab mälu oma elementidele eraldi oma mäluplokis ja üldstruktuur saadakse nende elementide linkides ahelas. Ainult lingitud loend koosneb sõlmede järjestusest ja igal sõlmel on viide järgmisele sõlmele. Topelt lingitud loend sisaldab sõlmede järjestust, milles iga sõlm sisaldab viidet nii järgmisele kui ka eelmisele sõlmele.
Üksikult lingitud loend
Igal üksikult lingitud loendi elemendil on kaks välja, nagu on näidatud joonisel 1. Andmeväli sisaldab tegelikke salvestatud andmeid ja järgmine väli sisaldab viidet ahela järgmisele elemendile. Lingitud loendi esimene element salvestatakse lingitud loendi peana.
Joonis 2 kujutab kolme elemendiga ühtselt lingitud loendit. Iga element salvestab oma andmed ja kõik elemendid, välja arvatud viimane, salvestavad viite järgmisele elemendile. Viimane element omab oma järgmise välja nullväärtust. Mis tahes loendis olevale elemendile pääseb juurde, alustades peast ja järgides järgmist osutit, kuni vastate nõutavale elemendile.
Kahekordse lingiga loend
Igal topeltlingitud loendi elemendil on kolm välja, nagu on näidatud joonisel 3. Sarnaselt eraldi lingitud loendiga hoiab ka andmeväli tegelikke salvestatud andmeid ja järgmine väli sisaldab viidet ahela järgmisele elemendile. Lisaks sisaldab eelmine väli viidet ahela eelmisele elemendile. Lingitud loendi esimene element salvestatakse lingitud loendi peana.
Joonis 4 kujutab kolme elemendiga topeltlingitud loendit. Kõik vaheelemendid salvestavad viited esimesele ja eelmisele elemendile. Loendi viimasel elemendil on järgmisel väljal nullväärtus ja loendi esimesel elemendil eelmisel väljal nullväärtus. Kahekordse lingiga loendi saab edasi liikuda, järgides iga elemendi järgmisi viiteid, samuti saab seda liikuda tagurpidi, kasutades iga elemendi varasemaid viiteid.
Mis vahe on üksikult lingitud loendil ja topelt lingitud loendil?
Iga üksikult lingitud loendi element sisaldab viidet loendi järgmisele elemendile, samas kui topelt lingitud loendi iga element sisaldab viiteid loendi järgmisele ja ka eelmisele elemendile. Kahekordselt lingitud loendid nõuavad loendi iga elemendi jaoks rohkem ruumi ja sellised elementaarsed toimingud nagu sisestamine ja kustutamine on keerukamad, kuna need peavad käsitlema kahte viidet. Kuid topelt linkide loendid võimaldavad hõlpsamat manipuleerimist, kuna see võimaldab loendis liikuda edasi ja tagasi.