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
A list is a finite ordered set of elements of a certain type.
ReplyDeleteThe elements of the list are called cells or nodes.
A list can be represented statically, using arrays or, more often, dynamically, by allocating and releasing memory as needed. In the case of static lists, the ordering is given implicitly by the one-dimension array. In the case of dynamic lists, the order of nodes is set by pointers. In this case, the cells are allocated dynamically in the heap of the program. Dynamic lists are typically called linked lists, and they can be singly- or doubly-linked.