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.
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
Komentar ini telah dihapus oleh administrator blog.
BalasHapus