Perbezaan Antara Array dan Senarai Terhangat
Arrays vs Linked Lists
Array adalah struktur data yang paling biasa digunakan untuk menyimpan koleksi unsur-unsur. Kebanyakan bahasa pengaturcaraan menyediakan kaedah untuk mengisytiharkan unsur-unsur tatasusunan dan akses dengan mudah dalam tatasusunan. Senarai yang dipautkan, senarai yang berkaitan dengan satu sama lain, juga merupakan struktur data yang boleh digunakan untuk menyimpan koleksi unsur-unsur. Ia terdiri daripada urutan nod dan setiap nod mempunyai rujukan kepada nod seterusnya dalam turutan.
Ditunjukkan dalam angka 1, adalah sekeping kod yang biasanya digunakan untuk mengisytiharkan dan memberikan nilai kepada array. Rajah 2 menggambarkan bagaimana array akan kelihatan seperti dalam ingatan.
Kod di atas mentakrifkan satu array yang boleh menyimpan 5 bilangan bulat dan mereka diakses dengan menggunakan indeks 0 hingga 4. Satu sifat penting bagi suatu array ialah keseluruhan array diperuntukkan sebagai satu blok ingatan dan setiap elemen mendapat ruang sendiri dalam pelbagai. Setelah array ditakrifkan, saiznya ditetapkan. Oleh itu, jika anda tidak pasti mengenai saiz array pada masa penyusunan, anda perlu menentukan array yang cukup besar untuk berada di bahagian yang selamat. Tetapi, kebanyakan masa kita sebenarnya akan menggunakan kurang bilangan elemen daripada yang kita peruntukkan. Oleh itu, sejumlah besar memori sebenarnya sia-sia. Sebaliknya jika "array yang cukup besar" tidak cukup besar, program itu akan terhempas.
Senarai terikat memperuntukkan memori kepada unsur-unsurnya secara berasingan dalam blok ingatannya sendiri dan struktur keseluruhan diperoleh dengan menghubungkan unsur-unsur ini sebagai pautan dalam rantai. Setiap elemen dalam senarai terikat mempunyai dua bidang seperti yang ditunjukkan dalam Rajah 3. Medan data memegang data sebenar yang disimpan dan medan seterusnya memegang rujukan ke elemen seterusnya dalam rantai. Elemen pertama senarai yang dipaut disimpan sebagai ketua senarai yang dipautkan.
data | seterusnya |
Rajah 3: Unsur Senarai Yang Dihubungkan
Rajah 4 menggambarkan senarai hubungan dengan tiga elemen. Setiap elemen menyimpan data dan semua unsur kecuali yang terakhir menyimpan rujukan kepada unsur seterusnya. Unsur terakhir memegang nilai nol dalam bidang seterusnya. Mana-mana elemen dalam senarai boleh diakses dengan bermula di kepala dan mengikuti penunjuk seterusnya sehingga anda memenuhi elemen yang diperlukan.
Walaupun susunan dan senarai pautan serupa dalam erti kata bahawa kedua-duanya digunakan untuk menyimpan koleksi unsur-unsur, mereka menimbulkan perbezaan kerana strategi yang mereka gunakan untuk mengagihkan memori kepada unsur-unsurnya. Arrays memperuntukkan ingatan kepada semua elemennya sebagai satu blok dan saiz array harus ditentukan pada masa runtime. Ini akan membuat tatasusunan tidak cekap dalam keadaan di mana anda tidak mengetahui saiz array pada masa penyusunan. Oleh kerana senarai yang dikaitkan memperuntukkan ingatan kepada unsur-unsurnya secara berasingan, ia akan menjadi lebih cekap dalam situasi di mana anda tidak mengetahui saiz senarai pada masa penyusunan.Pengisytiharan dan mengakses unsur-unsur dalam senarai yang dipautkan tidak akan menjadi lurus ke depan berbanding dengan cara anda mengakses elemen secara langsung menggunakan indeksnya.