Perbedaan Antara Array dan Linked Linked

Array vs Linked Links

Array adalah struktur data yang paling umum digunakan untuk menyimpan kumpulan elemen. Sebagian besar bahasa pemrograman menyediakan metode untuk dengan mudah mendeklarasikan array dan mengakses elemen dalam array. Linked list, lebih tepatnya daftar single-linked, juga merupakan struktur data yang dapat digunakan untuk menyimpan kumpulan elemen. Itu terdiri dari urutan node dan setiap node memiliki referensi ke simpul berikutnya dalam urutan.

Ditampilkan pada gambar 1, adalah bagian dari kode yang biasanya digunakan untuk mendeklarasikan dan menetapkan nilai ke array. Gambar 2 menggambarkan bagaimana sebuah array akan terlihat seperti dalam memori.

Kode di atas mendefinisikan sebuah array yang dapat menyimpan 5 bilangan bulat dan diakses menggunakan indeks 0 hingga 4. Salah satu properti penting dari array adalah bahwa seluruh array dialokasikan sebagai satu blok memori dan setiap elemen mendapatkan ruangnya sendiri dalam array. Setelah array didefinisikan, ukurannya tetap. Jadi jika Anda tidak yakin tentang ukuran array pada waktu kompilasi, Anda harus mendefinisikan array yang cukup besar untuk berada di sisi yang aman. Tetapi, sebagian besar waktu kita sebenarnya akan menggunakan lebih sedikit elemen daripada yang telah kita alokasikan. Jadi sejumlah besar memori sebenarnya terbuang sia-sia. Di sisi lain jika "array cukup besar" sebenarnya tidak cukup besar, program akan macet.

Daftar tertaut mengalokasikan memori ke elemen-elemennya secara terpisah dalam blok memorinya sendiri dan struktur keseluruhan diperoleh dengan menghubungkan elemen-elemen ini sebagai tautan dalam sebuah rantai. Setiap elemen dalam daftar tertaut memiliki dua bidang seperti yang ditunjukkan pada Gambar 3. Bidang data menyimpan data aktual yang disimpan dan bidang berikutnya memegang referensi ke elemen berikutnya dalam rantai. Elemen pertama dari daftar tertaut disimpan sebagai kepala daftar tertaut.

data lanjut

Gambar 3: Elemen Daftar Tertaut

Gambar 4 menggambarkan daftar tertaut dengan tiga elemen. Setiap elemen menyimpan datanya dan semua elemen kecuali yang terakhir menyimpan referensi ke elemen berikutnya. Elemen terakhir memegang nilai nol di bidang berikutnya. Setiap elemen dalam daftar dapat diakses dengan mulai dari kepala dan mengikuti pointer berikutnya sampai Anda memenuhi elemen yang diperlukan.

Meskipun susunan dan daftar tertaut serupa dalam arti bahwa keduanya digunakan untuk menyimpan koleksi elemen, mereka menimbulkan perbedaan karena strategi yang mereka gunakan untuk mengalokasikan memori ke elemen-elemennya. Array mengalokasikan memori ke semua elemennya sebagai satu blok dan ukuran array harus ditentukan saat runtime. Ini akan membuat array tidak efisien dalam situasi di mana Anda tidak tahu ukuran array pada waktu kompilasi. Karena daftar tertaut mengalokasikan memori ke elemen-elemennya secara terpisah, itu akan jauh lebih efisien dalam situasi di mana Anda tidak tahu ukuran daftar pada waktu kompilasi. Deklarasi dan mengakses elemen dalam daftar tertaut tidak akan langsung dibandingkan dengan bagaimana Anda secara langsung mengakses elemen dalam array menggunakan indeksnya.