Atskirai susietas sąrašas ir dvigubai susietas sąrašas
Susietas sąrašas yra linijinė duomenų struktūra, naudojama duomenų rinkiniui saugoti. Susietas sąrašas atskirai paskirsto atmintį savo elementams savo atminties bloke ir bendra struktūra gaunama susiejus šiuos elementus kaip grandinės grandis. Atskirai susietą sąrašą sudaro mazgų seka, o kiekvienas mazgas turi nuorodą į kitą sekos mazgą. Dvigubai susietame sąraše yra mazgų seka, kurioje kiekviename mazge yra nuoroda į kitą mazgą ir į ankstesnį mazgą.
Vienas susietas sąrašas
Kiekvienas atskirai susieto sąrašo elementas turi du laukus, kaip parodyta 1 paveiksle. Duomenų lauke saugomi faktiniai duomenys, o kitame lauke pateikiama nuoroda į kitą grandinės elementą. Pirmasis susieto sąrašo elementas saugomas kaip susieto sąrašo galva.
2 paveiksle pavaizduotas atskirai susietas sąrašas su trim elementais. Kiekvienas elementas saugo savo duomenis, o visi elementai, išskyrus paskutinį, saugo nuorodą į kitą elementą. Paskutinis elementas kitame lauke turi nulinę vertę. Bet kurį sąrašo elementą galima pasiekti pradedant nuo galvos ir sekant kitą rodyklę, kol pasieksite reikiamą elementą.
Dvigubai susietas sąrašas
Kiekvienas dvigubai susieto sąrašo elementas turi tris laukus, kaip parodyta 3 paveiksle. Panašiai kaip atskirai susietame sąraše, duomenų lauke laikomi faktiniai duomenys, o kitame lauke pateikiama nuoroda į kitą grandinės elementą. Be to, ankstesniame lauke yra nuoroda į ankstesnį grandinės elementą. Pirmasis susieto sąrašo elementas saugomas kaip susieto sąrašo galva.
4 paveiksle pavaizduotas dvigubai susietas sąrašas su trim elementais. Visi tarpiniai elementai saugo nuorodas į pirmąjį ir ankstesnį elementus. Paskutinis sąrašo elementas kitame lauke turi nulinę vertę, o pirmasis sąrašo elementas - ankstesniame lauke. Dvigubai susietą sąrašą galima perkelti į priekį, sekant kitas kiekvieno elemento nuorodas, ir panašiai galima pereiti atgal, naudojant ankstesnes kiekvieno elemento nuorodas.
Kuo skiriasi „Singly Linked List“ir „Doublely Linked List“?
Kiekviename atskirai susieto sąrašo elemente yra nuoroda į kitą sąrašo elementą, o kiekviename dvigubai susieto sąrašo elemente yra nuorodos į kitą elementą, taip pat į ankstesnį sąrašo elementą. Dvigubai susieti sąrašai reikalauja daugiau vietos kiekvienam sąrašo elementui, o pagrindinės operacijos, tokios kaip įterpimas ir ištrynimas, yra sudėtingesnės, nes joms tenka spręsti dvi nuorodas. Bet dvigubai nuorodų sąrašai leidžia lengviau manipuliuoti, nes tai leidžia pereiti sąrašą pirmyn ir atgal.