Google Play badge

safu na orodha zilizounganishwa


Safu na Orodha Zilizounganishwa

Karibu kwenye somo letu la safu na orodha zilizounganishwa. Katika somo hili, tutajifunza njia mbili rahisi za kuhifadhi na kupanga data. Fikiria una safu ya masanduku ya kuchezea au safu ya kabati shuleni. Safu na orodha zilizounganishwa hufanya kazi kwa njia sawa. Zinatusaidia kuweka mambo safi na rahisi kupata. Somo hili limeandikwa kwa lugha rahisi na mifano ya kila siku ili kukusaidia kuelewa mawazo haya kwa urahisi.

Utangulizi

Miundo ya data husaidia kompyuta kuhifadhi na kupanga habari. Miundo miwili muhimu ya data ni safu na orodha zilizounganishwa. Unaweza kufikiria safu kama safu ya visanduku, na orodha iliyounganishwa kama safu ya vidokezo vilivyounganishwa kwenye uwindaji wa hazina. Zote hizi hutusaidia kufuatilia vitu vingi, kama vile vinyago, vitabu, au hata vitafunio unavyopenda.

Tutazungumza juu ya safu ni nini, ni orodha gani iliyounganishwa, jinsi inavyofanya kazi, na jinsi tofauti. Pia tutaona mifano ya ulimwengu halisi ambayo hufanya mawazo haya kuwa wazi iwezekanavyo.

Array ni nini?

Safu ni mkusanyiko wa vitu. Ni kama safu ya masanduku ambapo kila kisanduku kinashikilia kitu kimoja. Kwa mfano, fikiria seti ya masanduku matano yaliyopangwa kwa safu. Unaweza kutumia kila sanduku kuhifadhi toy favorite au vitafunio.

Kila kisanduku katika safu kina nambari inayoitwa index. Sanduku la kwanza kawaida hupewa nambari 0, inayofuata ni 1, kisha 2, na kadhalika. Kuweka nambari huku kunakusaidia kupata kipengee mahususi kwa haraka. Kwa mfano, ikiwa unataka kipengee kwenye kisanduku cha tatu, angalia tu kisanduku chenye faharasa 2.

Hapa kuna fomula rahisi ya kuelezea jinsi tunaweza kupata kipengee katika safu. Ikiwa kisanduku cha kwanza kiko mahali pa kuanzia, basi anwani ya kitu chochote inaweza kuzingatiwa kama:

\( \textrm{Anwani}(A(i)) = \textrm{Anwani}(A(0)) + i \times \textrm{(ukubwa wa kitu kimoja)} \)

Hii inatuambia kwamba ili kusonga kutoka kwa kisanduku cha kwanza hadi kisanduku tunachotaka, unahesabu mbele idadi fulani ya nafasi.

Mali ya Arrays

Fikiria safu kama viti katika ukumbi mdogo wa sinema. Kila kiti kina nambari, na unaweza haraka kwenda kwenye kiti chako ikiwa unajua nambari yake.

Mfano wa Kila siku wa safu

Fikiria shule yako ina safu ya kabati, kila moja ikiwa na nambari ya kipekee. Unapoenda kuweka begi lako kwenye kabati lako, unatumia nambari maalum kwenye kabati. Katika mkusanyiko, kila kabati ni kama kisanduku, na nambari inakuambia mahali hususa ambapo begi yako—au data—huwekwa.

Je! Orodha Iliyounganishwa ni nini?

Orodha iliyounganishwa ni njia nyingine ya kuhifadhi vitu. Ni tofauti na safu kwa sababu haitumii safu ndefu ya masanduku yaliyowekwa. Badala yake, hutumia visanduku maalum vinavyoitwa nodi. Kila nodi hushikilia kipengee na pia ina pointer ambayo inakuambia nodi inayofuata iko wapi.

Fikiria uko kwenye kuwinda hazina. Kila kidokezo unachopata kinakuambia ambapo kidokezo kinachofuata kimefichwa. Katika orodha iliyounganishwa, kila nodi ni kama mojawapo ya vidokezo hivi. Unapoanza kwenye kidokezo cha kwanza, unafuata pointer kutoka nodi moja hadi nyingine hadi upate kile unachohitaji.

Unaweza kufikiria kila nodi kama bahasha ndogo. Bahasha hubeba kadi (data) na pia noti (kielekezi). Ujumbe huu unakuambia ni bahasha gani inayofuata kwenye mstari.

Jinsi Orodha Iliyounganishwa Inavyofanya Kazi

Wacha tuangalie njia rahisi ya kuandika nodi ni nini:

Nodi = {data, pointer)

"Data" kwenye nodi ni habari iliyohifadhiwa, na "pointer" ni kama mshale unaokuelekeza kwenye nodi inayofuata. Tofauti na safu, orodha iliyounganishwa haihitaji nodi zote kuwa karibu na kila mmoja katika kumbukumbu; wanaweza kuwa popote, mradi tu viashiria viunganishe.

Aina za Orodha Zilizounganishwa

Kuna mitindo tofauti ya orodha zilizounganishwa. Hapa kuna aina tatu za kawaida:

Mfano wa Ulimwengu Halisi wa Orodha Iliyounganishwa

Fikiria unafuata ramani ya hazina. Kila hatua kwenye ramani inakuambia hatua inayofuata iko wapi. Hata ukiongeza kidokezo cha ziada au kuondoa moja, bado unaweza kufuata kwa kusoma kidokezo kwenye kila kadi. Hivi ndivyo orodha iliyounganishwa inavyofanya kazi. Kila nodi (au kidokezo) imeunganishwa kwa inayofuata, huku kuruhusu uende kupitia orodha hatua moja kwa wakati.

Ulinganisho Kati ya Safu na Orodha Zilizounganishwa

Mkusanyiko na orodha zilizounganishwa zote hutusaidia kuhifadhi vitu, lakini huifanya kwa njia tofauti. Hapa kuna baadhi ya kulinganisha:

Faida na Hasara

Kila muundo wa data una sehemu zake nzuri na changamoto zake. Kuelewa haya hukusaidia kuchagua bora zaidi kutumia.

Safu:

Manufaa:

Hasara:

Orodha Zilizounganishwa:

Manufaa:

Hasara:

Kufanya kazi na Arrays

Wacha tuone jinsi tunaweza kutumia safu kwa njia rahisi. Tuseme unataka kuhifadhi rangi zako tano uzipendazo. Unaunda safu na masanduku tano. Kisha kuweka kila rangi kwenye sanduku kwa utaratibu. Kwa mfano:

Sasa, ukitaka kujua ni rangi gani iliyo kwenye Kisanduku 2, angalia tu kisanduku hicho na utaona "Kijani." Ufikiaji huu rahisi ni mojawapo ya sehemu bora za kutumia safu.

Kufanya kazi na Orodha Zilizounganishwa

Sasa, hebu tuangalie orodha iliyounganishwa. Fikiria hili kama uwindaji wa hazina ambapo unaanza na kidokezo na kisha ufuate maagizo ili kupata inayofuata. Katika orodha iliyounganishwa, tunaanza na nodi ambayo ina data fulani. Nodi hii ina pointer ambayo inaonyesha ni nodi gani inakuja ijayo.

Kwa mfano, fikiria una nodi tatu kwenye orodha iliyounganishwa inayosimulia hadithi ya kufurahisha:

Unaanza kwenye Nodi 1 na kufuata pointer (kidokezo) hadi Node 2, kisha kwa Node 3. Hata kama unataka kuongeza kidokezo kipya kati ya mojawapo ya haya, unahitaji tu kubadilisha viashiria vichache. Hii hufanya orodha zilizounganishwa kuwa rahisi sana.

Kuangazia Safu na Orodha Zilizounganishwa

Inasaidia kuwa na picha miundo hii ya data akilini mwako. Picha ya safu kama safu ndefu ya visanduku vilivyo wazi, vilivyo na lebo kwenye rafu. Kila sanduku lina kitu na ina mahali pa kudumu. Sasa, piga picha orodha iliyounganishwa kama mfuatano wa kadi. Kila kadi ina noti inayoonyesha mahali ambapo kadi inayofuata imefichwa. Katika safu, unaweza kuruka moja kwa moja kwa sanduku maalum kwa nambari yake. Katika orodha iliyounganishwa, unahitaji kufuata kadi kwa utaratibu.

Maombi ya Kila Siku

Safu hutumiwa katika mambo mengi ya kila siku. Kwa mfano, fikiria kalenda. Kalenda ina idadi maalum ya siku katika kila wiki, na siku hizo zimepangwa kwa safu. Unapotazama kalenda, unajua ni siku gani iko mahali gani.

Orodha zilizounganishwa hutumiwa wakati idadi ya bidhaa inaweza kubadilika kwa wakati. Fikiria safu ya watu wanaongoja kwenye lori la aiskrimu. Wakati mwingine watu wapya hujiunga na mstari, na wakati mwingine mtu huondoka. Mstari unaweza kukua au kupungua bila kulazimika kuunda muundo mpya uliowekwa. Hii hufanya orodha zilizounganishwa kuwa muhimu sana katika hali ambapo mambo hubadilika mara kwa mara.

Kubinafsisha Hifadhi ya Data

Kuchagua kati ya safu na orodha zilizounganishwa inategemea kile unachohitaji kufanya na data yako. Ikiwa unajua utakuwa na idadi maalum ya bidhaa kila wakati - kama siku katika wiki - basi safu inafaa sana. Hata hivyo, ikiwa kiasi cha data kinabadilika na unahitaji muundo unaoweza kubadilika kwa urahisi, orodha iliyounganishwa itakuwa chaguo bora.

Kwa mfano, katika mchezo wa kompyuta, safu inaweza kutumika kuhifadhi alama kwa kila ngazi kwa sababu idadi ya viwango imepangwa. Kwa upande mwingine, orodha iliyounganishwa inaweza kutumika kudhibiti orodha ya vitendo au hatua za wachezaji, ambayo inaweza kukua mchezo ukiendelea.

Jinsi ya Kuamua Ambayo ya Kutumia

Unapohitaji ufikiaji wa haraka wa vitu kulingana na nafasi yao, safu ndio chaguo bora zaidi. Hii ni kwa sababu unaweza kuruka moja kwa moja hadi mahali popote ikiwa unajua nambari yake. Hata hivyo, unapohitaji kuongeza au kuondoa vipengee mara kwa mara, orodha zilizounganishwa zinafaa zaidi kwa sababu hukuruhusu kubadilisha orodha bila kusogeza vitu vingi karibu.

Fikiria juu yake kwa njia hii: ikiwa una albamu ya vibandiko iliyo na idadi fulani ya kurasa, safu ni kama albamu hiyo. Lakini ikiwa una mkusanyiko unaokua wa postikadi unazoongeza kwenye ubao wa matangazo, orodha iliyounganishwa ni kama hiyo kwa sababu unaweza kuongeza kwa urahisi postikadi mpya kati ya zingine bila kupanga upya ubao mzima.

Mambo Muhimu na Muhtasari

Wacha tupitie mambo makuu ya somo letu:

Safu:

Orodha Zilizounganishwa:

Tofauti na Matumizi:

Kwa muhtasari, safu na orodha zilizounganishwa ni miundo miwili muhimu ya data inayotumiwa kupanga data. Mkusanyiko hufanya kazi kama safu mlalo ya visanduku vilivyowekwa, vilivyo na nambari, huku orodha zilizounganishwa hufanya kazi kama kutafuta hazina ambapo kila hatua inakuambia unapofuata. Njia zote mbili zina nguvu zao na hutumiwa katika hali tofauti kulingana na mahitaji ya kazi.

Kuelewa njia hizi mbili za kuhifadhi data ni muhimu sana. Programu nyingi za kompyuta, michezo, na programu hutumia safu na orodha zilizounganishwa chinichini. Kwa kujifunza jinsi zinavyofanya kazi, unapata maarifa kuhusu jinsi kompyuta zinavyopanga na kudhibiti data.

Kumbuka: safu ni rahisi na haraka muundo unapowekwa, wakati orodha zilizounganishwa hutoa kubadilika wakati data inabadilika. Iwe unawazia safu ya makabati au dokezo la hazina, dhana hizi hutusaidia kuelewa jinsi maelezo yanavyohifadhiwa na kutumiwa kila siku.

Somo hili limekupa wazo wazi la safu na orodha zilizounganishwa ni nini. Unapoendelea kujifunza na kuchunguza sayansi ya kompyuta, mawazo haya ya msingi yatakusaidia kuelewa mada ngumu zaidi. Wao ni vizuizi vya ujenzi wa miundo ya juu zaidi ya data na algoriti.

Muhtasari wa Mambo Muhimu:

Asante kwa kusoma somo hili kwenye safu na orodha zilizounganishwa. Tunatumahi kuwa umefurahia kujifunza kuhusu mbinu hizi za kuhifadhi data kwa njia iliyo wazi na rahisi. Unapokua na kujifunza zaidi, kumbuka miundo hii ya msingi na jinsi inavyosaidia kufanya kompyuta kufanya kazi kwa ufanisi.

Download Primer to continue