𝗙𝗿𝗼𝗻𝘁𝗲𝗻𝗱 𝗟𝗶𝗻𝗲𝗮𝗿 𝗗𝗮𝘁𝗮 𝗦𝘁𝗿𝘂𝗰𝘁𝘂𝗿𝗲𝘀
Miundo ya data ya linear hupanga vipengele katika mfuatano. Kila kipengele kina mfuatano mmoja wa awali na mfuatano mmoja wa baadae.
Arrays Arrays ni zana kuu katika JavaScript. Hutumia kumbukumbu inayofuatana (contiguous memory). Hii inakuwezesha kupata kipengele chochote kwa kutumia index yake papo hapo.
- push: Huongeza kipengele mwishoni.
- unshift: Huongeza kipengele mwanzoni. Hii ni polepole kwa sababu kila kipengele kingine lazima kisonge nafasi moja kulia.
- splice: Huongeza au kuondoa vipengele katika nafasi yoyote. Njia hii hubadilisha array ya asili. Si pure function.
Kumbuka: Array inapokuwa kubwa sana, JavaScript lazima itenge kizuizi kikubwa zaidi cha kumbukumbu na kunakili kila kitu. Hii hupunguza utendaji (performance).
Stacks Stack hufuata sheria ya LIFO: Last In, First Out (Kila kilichoingia mwisho, kinatoka kwanza). Fikiria mrundikano wa sahani. Unaongeza au kuondoa tu kutoka juu.
- push: Ongeza juu.
- pop: Ondoa juu.
- peek: Tazama kipengele cha juu bila kukiondoa.
Queues Queue hufuata sheria ya FIFO: First In, First Out (Kila kilichoingia kwanza, kinatoka kwanza). Fikiria foleni kwenye duka.
- push: Ongeza nyuma.
- shift: Ondoa mbele.
Onyo: Kutumia shift kwenye array ni polepole kwa seti kubwa za data. Kila kipengele lazima kisonge kushoto ili kuziba pengo. Kwa data nyingi, tumia linked list badala yake.
Linked Lists Linked list inajumuisha nodes. Kila node hubeba data na kiashiria (pointer) kuelekea node inayofuata.
- Faida: Kuongeza au kuondoa nodes ni haraka mara tu unapopata sehemu husika. Unabadilisha tu viashiria (pointers).
- Hasara: Huwezi kuruka moja kwa moja kwenye index. Lazima uanze kwenye head na ufuate viashiria moja baada ya nyingine. Hii ni polepole.
Muhtasari wa Ulinganifu:
- Arrays: Bora kwa kusoma mara kwa mara na data ndogo. Ufikiaji ni O(1).
- Linked Lists: Bora kwa kuandika mara kwa mara na data kubwa. Uingizaji ni O(1) ikiwa unayo node husika.
Vidokezo vya Kitaalamu kwa JavaScript:
- Usichanganye aina za data (data types) kwenye array. Kuweka aina zinazofanana husaidia injini kutumia kumbukumbu inayofuatana (contiguous memory).
- Daima tumia comparator function unapopanga namba.
[10, 2].sort()hutoa[10, 2]kwa sababu inapanga kama maandishi (strings). - Kumbuka kuwa njia nyingi za asili za array hubadilisha (mutate) array ya asili.