Atskirai susietas sąrašas vs dvigubai susietas sąrašas
Susietas sąrašas yra linijinė duomenų struktūra, naudojama duomenų rinkiniui saugoti. Susietasis sąrašas priskiria atmintį savo elementams atskirai savo atminties bloke, o bendra struktūra gaunama susiejant šiuos elementus kaip grandines grandinėje. Atskirai susietą sąrašą sudaro mazgų seka ir kiekvienas mazgas turi nuorodą į kitą sekos mazgą. Dvigubai susietame sąraše yra mazgų seka, kurioje kiekviename mazge yra nuoroda į kitą mazgą, taip pat į ankstesnį mazgą.
Atskirai susietas sąrašas
Kiekvienas elementas atskirai susietame sąraše turi du laukus, kaip parodyta 1 paveiksle. Duomenų lauke saugomi tikrieji saugomi duomenys, o kitame lauke yra nuoroda į kitą grandinės elementą. Pirmasis susieto sąrašo elementas išsaugomas kaip susieto sąrašo antraštė.
2 paveiksle pavaizduotas atskirai susietas trijų elementų sąrašas. Kiekvienas elementas saugo savo duomenis, o visi elementai, išskyrus paskutinį, saugo nuorodą į kitą elementą. Paskutinis elementas kitame lauke turi nulinę reikšmę. Bet kurį sąrašo elementą galima pasiekti pradedant nuo antraštės ir sekant kitą žymeklį, 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 ir atskirai susietame sąraše, duomenų lauke yra tikrieji saugomi duomenys, o kitame lauke yra nuoroda į kitą grandinės elementą. Be to, ankstesniame lauke yra nuoroda į ankstesnį grandinės elementą. Pirmasis susieto sąrašo elementas išsaugomas kaip susieto sąrašo antraštė.
4 paveiksle pavaizduotas dvigubai susietas trijų elementų sąrašas. Visi tarpiniai elementai saugo nuorodas į pirmąjį ir ankstesnį elementus. Paskutinis sąrašo elementas turi nulinę reikšmę kitame lauke, o pirmasis sąrašo elementas turi nulinę reikšmę ankstesniame lauke. Dvigubai susietą sąrašą galima eiti pirmyn, sekant kitas nuorodas kiekviename elemente, ir panašiai gali būti eiti atgal, naudojant ankstesnes kiekvieno elemento nuorodas.
Kuo skiriasi atskirai susietas sąrašas ir dvigubai susietas sąrašas?
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ą ir ankstesnį elementą sąraše. Dvigubai susietiems sąrašams reikia daugiau vietos kiekvienam sąrašo elementui, o elementarios operacijos, tokios kaip įterpimas ir ištrynimas, yra sudėtingesnės, nes turi susidoroti su dviem nuorodomis. Tačiau dvigubų nuorodų sąrašai leidžia lengviau manipuliuoti, nes leidžia eiti sąrašu pirmyn ir atgal.