Ühekordselt lingitud loend vs topeltlingitud loend
Lingitud loend on lineaarne andmestruktuur, mida kasutatakse andmekogu salvestamiseks. Lingitud loend eraldab mälu oma elementidele eraldi oma mäluplokis ja üldine struktuur saadakse nende elementide sidumisel ahela lülidena. Üksiklingitud loend koosneb sõlmede jadast ja igal sõlmel on viide jada järgmisele sõlmele. Topeltlingitud loend sisaldab sõlmede jada, milles iga sõlm sisaldab viidet nii järgmisele kui ka eelmisele sõlmele.
Ühekordselt 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 kolmest elemendist koosnevat üksikult lingitud loendit. Iga element salvestab oma andmed ja kõik elemendid peale viimase salvestavad viite järgmisele elemendile. Viimasel elemendil on järgmisel väljal nullväärtus. Loendi igale elemendile pääseb juurde, alustades päisest ja järgides järgmist kursorit, kuni leiate nõutud elemendi.
Topeltlingitud loend
Igal topeltlingitud loendi elemendil on kolm välja, nagu on näidatud joonisel 3. Sarnaselt üksikult lingitud loendile sisaldab andmeväli tegelikke salvestatud andmeid ja järgmine väli sisaldab viidet ahela järgmisele elemendile. Lisaks sisaldab eelmine väli viide ahela eelmisele elemendile. Lingitud loendi esimene element salvestatakse lingitud loendi peana.
Joonis 4 kujutab kolme elemendiga topeltlingitud loendit. Kõik vaheelemendid salvestavad viiteid esimesele ja eelmisele elemendile. Loendi viimasel elemendil on järgmisel väljal nullväärtus ja loendi esimesel elemendil on eelmisel väljal nullväärtus. Topeltlingitud loendit saab liikuda edasi, järgides iga elemendi järgmisi viiteid, ja samamoodi saab liikuda tagasi, kasutades iga elemendi eelmisi viiteid.
Mis vahe on üksikult lingitud loendil ja topeltlingitud loendil?
Iga üksikult lingitud loendi element sisaldab viidet loendi järgmisele elemendile, samas kui iga topeltlingitud loendi element sisaldab viiteid nii järgmisele kui ka loendi eelmisele elemendile. Topeltlingitud loendid nõuavad loendi iga elemendi jaoks rohkem ruumi ja elementaarsed toimingud, nagu sisestamine ja kustutamine, on keerukamad, kuna need peavad tegelema kahe viitega. Kuid topeltlinkide loendid võimaldavad hõlpsamini manipuleerida, kuna see võimaldab loendit edasi- ja tagasisuunas liikuda.