Apa itu linked list?
linked list adalah linear data structure (struktur data linear) yang dimana datanya tidak disimpan pada lokasi memori yang bersebelahan. Data pada linked list disimpan menggunakan pointer. linked list terdiri dari node yang berisikan data dan memiliki link dengan node selanjutnya pada list tersebut. Terdapat 4 jenis Linked List, berikut contohnya :
Singly Linked List
Singly linked list memiliki node yang memiliki 2 kotak yang menyimpan data tersebut dan pointer yang menyimpan alamat node berikutnya. Pada node terakhir, terdapat pointer yang menyimpan nilai "NULL" yang disebut dengan tail. sedangkan node pertama disebut dengan head.
Circular Singly Linked List
Dalam Circular Singly Linked List, terdapat node terakhir (tail) yang memiliki pointer menuju node pertama (head) sehingga membentuk sebuah sirkuit, yang berarti tidak ada awal maupun akhir dan tidak ada NULL setelah node manapun.
Doubly Linked List
Dalam doubly linked list, setiap node terdapat pointer yang menunjuk ke node sebelum dan sesudahnya. dalam doubly linked list ini, setiap node berisikan 3 bagian, yaitu node data, dan pointer ke node sebelum dan sesudahnya.
Circular Doubly Linked List
Circular doubly linked list memiliki ciri yang sama seperti doubly linked list, yaitu pada setiap data memiliki node yang didalamnya terdapat pointer menuju node sebelum dan sesudahnya. Selain itu, pada circular doubly linked list tidak memiliki NULL pada seluruh nodenya. Lalu pada node terakhir pada list tersebut menyimpan alamat node pertama pada list, dan node pertama menyimpan alamat node terakhir pada pointer sebelumnya.
Keunggulan linked list dibandingkan dengan array:
- ukuran untuk array harus di deklarasikan diawal, sedangkan linked list tidak harus.
- ukuran linked list bisa bertambah seiringnya pertambahan data (dinamis)
- penyimpanan linked list tidak harus disimpan secara bersebelahan pada memori
- dapat menyimpan primitive data types ataupun objek pada linked list
Referensi
https://www.javatpoint.com/circular-doubly-linked-list
https://www.javatpoint.com/doubly-linked-list
https://www.javatpoint.com/doubly-linked-list