𝗦𝘁𝗿𝘂𝗸𝘁𝘂𝗿 𝗗𝗮𝘁𝗮 𝗟𝗶𝗻𝗲𝗮𝗿 𝗙𝗿𝗼𝗻𝘁𝗲𝗻𝗱
Struktur data linear menyusun elemen dalam satu urutan. Setiap elemen mempunyai satu pendahulu (predecessor) dan satu pengganti (successor).
Array Array adalah alat utama dalam JavaScript. Ia menggunakan memori berterusan (contiguous memory). Ini membolehkan anda mengakses mana-mana elemen melalui indeksnya secara serta-merta.
- push: Menambah elemen ke penghujung.
- unshift: Menambah elemen ke permulaan. Ini adalah perlahan kerana setiap elemen lain mesti beralih satu posisi ke kanan.
- splice: Menambah atau membuang elemen pada mana-mana posisi. Kaedah ini mengubah array asal. Ia bukan fungsi tulen (pure function).
Nota: Apabila array menjadi terlalu besar, JavaScript mesti memperuntukkan blok memori yang lebih besar dan menyalin semuanya. Ini menjejaskan prestasi.
Stack Stack mengikut peraturan LIFO: Last In, First Out (Masuk Terakhir, Keluar Pertama). Bayangkan timbunan pinggan. Anda hanya menambah atau mengeluarkan dari bahagian atas.
- push: Tambah ke bahagian atas.
- pop: Buang dari bahagian atas.
- peek: Lihat elemen teratas tanpa mengeluarkannya.
Queue Queue mengikut peraturan FIFO: First In, First Out (Masuk Pertama, Keluar Pertama). Bayangkan barisan di kedai.
- push: Tambah ke bahagian belakang.
- shift: Buang dari bahagian hadapan.
Amaran: Menggunakan shift pada array adalah perlahan untuk set data yang besar. Setiap elemen mesti beralih ke kiri untuk mengisi ruang kosong. Untuk data volum tinggi, gunakan linked list sebagai ganti.
Linked List Linked list terdiri daripada nod. Setiap nod menyimpan data dan penunjuk (pointer) ke nod seterusnya.
- Kelebihan: Menambah atau membuang nod adalah pantas sebaik sahaja anda menemui kedudukannya. Anda hanya perlu mengubah penunjuk.
- Kekurangan: Anda tidak boleh melompat ke mana-mana indeks. Anda mesti bermula dari kepala (head) dan mengikut penunjuk satu demi satu. Ini adalah perlahan.
Ringkasan Perbandingan:
- Array: Terbaik untuk pembacaan kerap dan data kecil. Capaian adalah O(1).
- Linked List: Terbaik untuk penulisan kerap dan data besar. Pemasukan adalah O(1) jika anda mempunyai nod tersebut.
Tip Pro untuk JavaScript:
- Jangan campurkan jenis data dalam satu array. Mengekalkan jenis yang seragam membantu enjin menggunakan memori berterusan.
- Sentiasa gunakan fungsi pembanding (comparator function) apabila menyusun nombor.
[10, 2].sort()menghasilkan[10, 2]kerana ia menyusun sebagai string. - Ingat bahawa kebanyakan kaedah array asli mengubah (mutate) array asal.