Linked List
Pengertian
Linked List atau yang biasa disebut dengan senarai berantai adalah struktur data yang terdiri dari record data dimana setiap record mempunyai field yang menyimpan alamat/refrensi dari record selanjutnya dalam urutan.
Macam-macam Linked list
- Circular Single Linked List
- Doubly Linked List
- Circular Doubly Linked List
Circular Single Linked List
Dalam Circular Single Linked List, tidak ada pointer yang menunjukkan NULL yang artinya semua pointer pada setiap node pasti menunjuk pada node lainnya. Proses ini dapat juga disebut sebagai siklus. Head dapat dimulai dimanapun dan cara menentukan ini berhenti dengan cara melewati satu putaran. Seperti pada gambar diatas, pointer yang terdapat pada node terakhir akan menunjuk pada head dan setelah itu berhenti. Bila hanya terdapat satu node, maka node tersebut akan menunjuk dirinya sendiri.
Doubly Linked List
Double/Doubly Linked List adalah linked list yang memiliki dua pointer yang memiliki kegunaan untuk menunjukkan untaian data, yaitu data sebelumnya (previous data) dan data setelahnya (next data). Keunggulan dari linked list ini disaat kita mengaksesnya secara terbalik, yaitu bila kita mengakses list dari data akhir ke data awal. Disamping keungguuan ini, terdapat kelemahan yang ditimbulkan oleh Doubly Linked List. Doubly Linked List memebutuhkan ukuran data yang lebih besar dibandingkan sible linked list dikarenakan memiliki dua pointer. Oleh karena itu, bila tidak menggunakan akses dua arah, single linked list saja sudah cukup.
Berikut adalah contoh codingan Doubly Linked List dalam bahasa C++
struct node {
int nilai;
struct node *next;
struct node *prev;
};
struct node *head=0;
struct node *tail=0;
Proses Insert dalam Doubly Linked List:
- Push Head: data baru yang akan dimasukkan diletakkan paling depan.
- Push Tail: data baru yang akan dimasukkan diletakkan paling akhir atau belakang.
- Push Mid: data baru yang akan dimasukkan diletakkan dibagian tengah, tidak selalu tepat di tengah, namun diantara bagian head dan tail.
- Bila hanya ada satu data dalam linked list.
- Data yang ingin dihilangkan adalah head.
- Data yang ingin dihilangkan adalah tail.
- Data yang ingin dihilangkan adalah bukan head maupun tail, tetapi daerah mid.
Circular Doubly Linked List
Sama seperti Doubly Linked List, Circular Doubly Linked List memiliki dua pointer yang memiliki kegunaan untuk menunjukkan untaian data, yaitu data sebelumnya dan data setelahnya, hanya saja terdapat sedikit tambahan. Pada list ini, tidak ada pointer yang menunjukkan NULL, yang artinya semua node pasti menunjukkan ke node lainnya. Dalam list ini node pertama menunjuk kepada node terakhir, node terakhir juga menunjuk ke node pertama. Bila hanya terdapat satu node, pointer previous dan pointer next akan menujuk pada dirinya sendiri.
Refrensi
Binus Maya