STRUKTUR DATA LINKED LIST





 Linked List atau dikenal juga dengan sebutan senarai berantai adalah struktur data yang terdiri dari urutan record data dimana setiap record memiliki field yang menyimpan alamat/referensi dari record selanjutnya (dalam urutan). Elemen data yang dihubungkan dengan link pada Linked List disebut Node. Biasanya didalam suatu linked list, terdapat istilah head dan tail. 

Head adalah elemen yang berada pada posisi pertama dalam suatu linked list

Tail adalah elemen yang berada pada posisi terakhir dalam suatu linked list


Ada beberapa macam Linked List, yaitu :


Single Linked List
Single Linked List merupakan suatu linked list yang hanya memiliki satu variabel pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya. Biasanya field pada tail menunjuk ke NULL.

contoh codingannya :

struct Mahasiswa{
      char nama[25];
      int usia;
      struct Mahasiswa *next;
}*head,*tail;







Double Linked List

Double Linked List merupakan suatu linked list yang memiliki dua variabel pointer yaitu pointer yang menunjuk ke node selanjutnya dan pointer yang menunjuk ke node sebelumnya. Setiap head dan tailnya juga menunjuk ke NULL.


contoh codingannya :

struct Mahasiwa{
     char nama[25];
     int usia;
     struct Mahasiswa *next,*prev;
}*head,*tail;


Circular Linked List
Circular Linked List merupakan suatu linked list dimana tail (node terakhir) menunjuk ke head (node pertama). Jadi tidak ada pointer yang menunjuk NULL. Ada 2 jenis Circular Linked List, yaitu :


Keuntungan utama pemanfaatan senarai berantai dibandingkan larik, ataupun senarai biasa adalah kemudahan dan efektifitas kerja yang lebih baik dalam hal menambah, mengurangi, serta mencari suatu elemen/node yang terdapat dalam senarai. Hal tersebut dimungkinkan karena elemen-elemen yang terdapat pada sebuah senarai berantai tidak ditempatkan pada sebuah blok memori komputer seperti halnya larik ataupun senarai biasa, melainkan tiap-tiap elemen/node tersebut tersimpan dalam blok memori terpisah, penambahan, pengurangan, ataupun penggantian node dapat dilakukan dengan mengubah elemen rujukan atas tiap-tiap node yang terkait.

Kerugiannya, sebuah senarai berantai tidak memungkinkan pengaksesan elemen secara acak, dalam artian untuk dapat mengakses node ke tiga, harus dilakukan dengan cara mengunjungi elemen-elemen sebelumnya, dimulai dari elemen pertama, ke dua, seterusnya hingga pada lokasi elemen yang dimaksudkan.

Ada juga beberapa oerasi yang biasanya digunakan didalam sebuah Lingked List :
a.    Push
Yang merupakan operasi insert. Ada 2 kemungkinan insert yaitu melalui depan ataupun belakang

  • o       PushHead – Menambah data ke barisan paling awal
  • o      PushTail – Menambah data ke barisan paling akhir
  • o      PushMid – Menambah data ke barisan di tengah (sorting)

b.    Pop
Merupakan kebalikan dari push , push merupakan operasi delete sama halnya ada 2 kemungkinan 2 delete yaitu melalui depan ataupun belakang

  • o     Pop untuk menghapus data
  • o     PopHead – Menghapus data paling awal
  • o     PopTail – Menghapus data paling akhir
  • o     PopMid – Menghapus data ditengah (sesuai parameter value)



Sumber : Buku Algoritma dan Struktur Data Karya RINTHO RANTE RERUNG, S.KOM., M.KOM
                gambar diambil dari google
           


          

1 komentar: