Mkusanyiko dhidi ya Orodha Zilizounganishwa
Mkusanyiko ndio muundo wa data unaotumika sana kuhifadhi mkusanyiko wa vipengee. Lugha nyingi za programu hutoa mbinu za kutangaza kwa urahisi safu na vipengele vya kufikia katika safu. Orodha iliyounganishwa, orodha iliyounganishwa kwa usahihi zaidi, pia ni muundo wa data ambao unaweza kutumika kuhifadhi mkusanyiko wa vipengele. Inaundwa na mfuatano wa nodi na kila nodi ina marejeleo ya nodi inayofuata katika mfuatano huo.
Inavyoonyeshwa kwenye mchoro wa 1, ni sehemu ya msimbo ambayo kwa kawaida hutumika kutangaza na kugawa thamani kwa mkusanyiko. Kielelezo cha 2 kinaonyesha jinsi safu inaweza kuonekana kama kwenye kumbukumbu.
Nambari iliyo hapo juu inafafanua safu inayoweza kuhifadhi nambari 5 na zinaweza kufikiwa kwa kutumia fahirisi 0 hadi 4. Sifa moja muhimu ya safu ni kwamba safu nzima imetengwa kama hifadhi moja ya kumbukumbu na kila kipengele hupata nafasi yake. katika safu. Mara safu inapofafanuliwa, ukubwa wake umewekwa. Kwa hivyo ikiwa huna uhakika juu ya saizi ya safu wakati wa kukusanya, utalazimika kufafanua safu kubwa ya kutosha kuwa katika upande salama. Lakini, mara nyingi tutatumia idadi ndogo ya vipengele kuliko tulivyotenga. Hivyo kiasi kikubwa cha kumbukumbu ni kweli kupita. Kwa upande mwingine ikiwa "safu kubwa ya kutosha" si kubwa vya kutosha, programu inaweza kuacha kufanya kazi.
Orodha iliyounganishwa hutenga kumbukumbu kwa vipengee vyake tofauti katika hifadhi yake ya kumbukumbu na muundo wa jumla hupatikana kwa kuunganisha vipengele hivi kama viungo katika mnyororo. Kila kipengele katika orodha iliyounganishwa kina sehemu mbili kama inavyoonyeshwa kwenye Mchoro 3. Sehemu ya data inashikilia data halisi iliyohifadhiwa na sehemu inayofuata inashikilia rejeleo la kipengele kinachofuata kwenye mnyororo. Kipengele cha kwanza cha orodha iliyounganishwa kinahifadhiwa kama kichwa cha orodha iliyounganishwa.
data | inayofuata |
Kielelezo 3: Kipengele cha Orodha Iliyounganishwa
Kielelezo cha 4 kinaonyesha orodha iliyounganishwa yenye vipengele vitatu. Kila kipengele huhifadhi data yake na vipengele vyote isipokuwa cha mwisho huhifadhi marejeleo ya kipengele kinachofuata. Kipengele cha mwisho kinashikilia thamani isiyofaa katika sehemu yake inayofuata. Kipengele chochote kwenye orodha kinaweza kupatikana kwa kuanzia kichwani na kufuata kielekezi kinachofuata hadi utakapokutana na kipengele kinachohitajika.
Ingawa safu na orodha zilizounganishwa zinafanana kwa maana kwamba zote mbili hutumika kuhifadhi mkusanyiko wa vipengele, huleta tofauti kutokana na mikakati wanayotumia kutenga kumbukumbu kwa vipengele vyake. Mkusanyiko hutenga kumbukumbu kwa vipengee vyake vyote kama kizuizi kimoja na saizi ya safu lazima ibainishwe wakati wa utekelezaji. Hii inaweza kufanya safu kuwa duni katika hali ambapo haujui saizi ya safu wakati wa kukusanya. Kwa kuwa orodha iliyounganishwa inagawa kumbukumbu kwa vipengele vyake tofauti, itakuwa na ufanisi sana katika hali ambazo hujui ukubwa wa orodha wakati wa kukusanya. Tamko na ufikiaji wa vipengee katika orodha iliyounganishwa haingekuwa mbele moja kwa moja ikilinganishwa na jinsi unavyofikia vipengele moja kwa moja katika mkusanyiko kwa kutumia fahirisi zake.