Direkomendasikan, 2024

Pilihan Editor

Perbedaan antara Array dan Linked List

Perbedaan utama antara daftar Array dan Linked berkaitan dengan struktur mereka. Array adalah struktur data berbasis indeks di mana setiap elemen terkait dengan indeks. Di sisi lain, daftar Linked bergantung pada referensi di mana setiap node terdiri dari data dan referensi ke elemen sebelumnya dan selanjutnya.

Pada dasarnya, array adalah sekumpulan objek data serupa yang disimpan di lokasi memori berurutan di bawah judul umum atau nama variabel.

Sedangkan daftar tertaut adalah struktur data yang berisi urutan elemen di mana setiap elemen terkait dengan elemen berikutnya. Ada dua bidang dalam elemen daftar tertaut. Salah satunya adalah bidang Data, dan lainnya adalah bidang tautan, bidang Data berisi nilai aktual untuk disimpan dan diproses. Selanjutnya, bidang tautan menyimpan alamat item data berikutnya dalam daftar tertaut. Alamat yang digunakan untuk mengakses node tertentu dikenal sebagai pointer.

Perbedaan signifikan lainnya antara array dan daftar tertaut adalah bahwa Array memiliki ukuran tetap dan harus dinyatakan sebelumnya, tetapi Daftar Tertaut tidak terbatas pada ukuran dan memperluas dan kontrak selama eksekusi.

Grafik perbandingan

Dasar untuk PerbandinganArrayDaftar tertaut
DasarIni adalah set yang konsisten dari sejumlah item data yang tetap.Ini adalah set yang dipesan yang terdiri dari sejumlah variabel item data.
UkuranDitentukan selama deklarasi.Tidak perlu ditentukan; tumbuh dan menyusut selama eksekusi.
Alokasi PenyimpananLokasi elemen dialokasikan selama waktu kompilasi.Posisi elemen ditugaskan selama waktu berjalan.
Urutan elemenDisimpan berurutanDisimpan secara acak
Mengakses elemenLangsung atau diakses secara acak, yaitu, Menentukan indeks array atau subskrip.Diakses secara berurutan, yaitu, Traverse mulai dari node pertama dalam daftar oleh pointer.
Penyisipan dan penghapusan elemenLambat relatif karena pergeseran diperlukan.Lebih mudah, cepat, dan efisien.
MencariPencarian biner dan pencarian linierpencarian linear
Memori yang dibutuhkankurangLebih
Pemanfaatan MemoriTidak efektifEfisien

Definisi Array

Array didefinisikan sebagai seperangkat jumlah pasti elemen homogen atau item data. Ini berarti sebuah array dapat berisi satu jenis data saja, baik semua bilangan bulat, semua angka floating-point, atau semua karakter. Deklarasi sebuah array adalah sebagai berikut:
int a [10];
Di mana int menentukan tipe data atau elemen tipe array yang disimpan. "A" adalah nama dari sebuah array, dan jumlah yang ditentukan di dalam tanda kurung adalah jumlah elemen yang dapat disimpan oleh array, ini juga disebut ukuran atau panjang array.

Mari kita lihat beberapa konsep yang perlu diingat tentang array:

  • Elemen-elemen individual dari sebuah array dapat diakses dengan menggambarkan nama array, diikuti oleh indeks atau subskrip (menentukan lokasi elemen dalam array) di dalam tanda kurung siku. Sebagai contoh, untuk mengambil elemen ke-5 dari array, kita perlu menulis pernyataan a [4].
  • Bagaimanapun elemen elemen array akan disimpan di lokasi memori berturut-turut.
  • Elemen pertama array memiliki indeks nol [0]. Ini berarti elemen pertama dan terakhir akan ditentukan sebagai [0], dan [9] masing-masing.
  • Jumlah elemen yang dapat disimpan dalam array, yaitu ukuran array atau panjangnya diberikan oleh persamaan berikut:
    (batas atas-batas bawah) +1
    Untuk array di atas, itu akan menjadi (9-0) +1 = 10. Di mana 0 adalah batas bawah array, dan 9 adalah batas atas array.
  • Array dapat dibaca atau ditulis melalui loop. Jika kita membaca array satu dimensi, itu memerlukan satu loop untuk membaca dan lainnya untuk menulis (mencetak) array, misalnya:
    Sebuah. Untuk membaca array
    untuk (i = 0; i <= 9; i ++)
    {scanf (ā€œ% dā€, & a [i]); }
    b. Untuk menulis array
    untuk (i = 0; i <= 9; i ++)
    {printf (ā€œ% dā€, a [i]); }
  • Dalam kasus array 2-D, itu akan membutuhkan dua loop dan array n-dimensi yang sama akan membutuhkan n loop.

Operasi yang dilakukan pada array adalah:

  1. Pembuatan array
  2. Melintasi array
  3. Penyisipan elemen baru
  4. Penghapusan elemen yang diperlukan.
  5. Modifikasi elemen.
  6. Penggabungan array

Contoh

Program berikut menggambarkan pembacaan dan penulisan array.

#include
#include
void main ()
{
int a[10], i;
printf("Enter the array");
for ( i= 0; i <= 9; i++)
{
scanf ( "%d", &a[ i ] ) ;
}
printf( "Enter the array" );
for (i = 0 ; i <= 9 ; i++)
{
printf ( "%d\n", a[ i ] ) ;
}
getch ();
}

Definisi Daftar Tertaut

Daftar tertaut adalah daftar tertentu dari beberapa elemen data yang ditautkan satu sama lain. Dalam hal ini setiap elemen menunjuk ke elemen berikutnya yang mewakili urutan logis. Setiap elemen disebut simpul, yang memiliki dua bagian.

Bagian INFO yang menyimpan informasi dan POINTER yang menunjuk ke elemen berikutnya. Seperti yang Anda ketahui untuk menyimpan alamat, kami memiliki struktur data unik dalam C yang disebut pointer. Oleh karena itu bidang kedua daftar harus berupa tipe penunjuk.

Jenis daftar tertaut adalah Daftar tertaut tunggal, Daftar tertaut ganda, Daftar tertaut melingkar, Daftar tertaut ganda melingkar.

Operasi yang dilakukan pada Daftar Tertaut adalah:

  1. Penciptaan
  2. Melintasi
  3. Insersi
  4. Penghapusan
  5. Mencari
  6. Rangkaian
  7. Tampilan

Contoh

Cuplikan berikut menggambarkan pembuatan daftar yang ditautkan:

struct node
{
int num;
stuct node *next;
}
start = NULL;
void create()
{
typedef struct node NODE;
NODE *p, *q;
char choice;
first = NULL;
do
{
p = (NODE *) malloc (sizeof (NODE));
printf ("Enter the data item\n");
scanf ("%d", & p -> num);
if (p == NULL)
{
q = start;
while (q -> next ! = NULL)
{ q = q -> next
}
p -> next = q -> next;
q -> = p;
}
else
{
p -> next = start;
start = p;
}
printf ("Do you want to continue (type y or n) ? \n");
scanf ("%c", &choice) ;
}
while ((choice == 'y') || (choice == 'Y'));
}

Perbedaan Kunci Antara Array dan Linked List

  1. Array adalah struktur data yang berisi kumpulan elemen data tipe serupa sedangkan daftar Linked dianggap sebagai struktur data non-primitif berisi kumpulan elemen tertaut yang tidak berurutan yang dikenal sebagai node.
  2. Dalam array elemen milik indeks, yaitu, jika Anda ingin masuk ke elemen keempat Anda harus menulis nama variabel dengan indeksnya atau lokasi dalam kurung siku.
    Namun, dalam daftar yang ditautkan, Anda harus mulai dari kepala dan terus mengerjakan sampai Anda mencapai elemen keempat.
  3. Meskipun mengakses array elemen lebih cepat sementara daftar Linked membutuhkan waktu linier jadi, itu agak lambat.
  4. Operasi seperti penyisipan dan penghapusan dalam array menghabiskan banyak waktu. Di sisi lain, kinerja operasi ini di daftar Linked cepat.
  5. Array memiliki ukuran tetap. Sebaliknya, Linked list bersifat dinamis dan fleksibel dan dapat memperluas dan mengecilkan ukurannya.
  6. Dalam sebuah array, memori ditetapkan selama waktu kompilasi sementara dalam daftar Linked itu dialokasikan selama eksekusi atau runtime.
  7. Elemen disimpan secara berurutan dalam array sedangkan disimpan secara acak dalam daftar Linked.
  8. Persyaratan memori kurang karena data aktual disimpan dalam indeks dalam array. Sebagai lawan, ada kebutuhan untuk lebih banyak memori dalam Linked Linked karena penyimpanan elemen referensi berikutnya dan sebelumnya tambahan.
  9. Selain itu pemanfaatan memori tidak efisien dalam array. Sebaliknya, pemanfaatan memori efisien dalam array.

Kesimpulan

Daftar Array dan Linked adalah jenis struktur data yang berbeda dalam strukturnya, metode pengaksesan dan manipulasi, kebutuhan memori, dan pemanfaatannya. Dan memiliki kelebihan dan kekurangan tertentu dari implementasinya. Akibatnya, salah satu dapat digunakan sesuai kebutuhan.

Top