Linked List

  • Circular Single Linked List
Circular Single Linked List sebenarnya adalah dasar dari Single Linked List namun yang membedakannya ada pada bagian tail. Single Linked List adalah sekumpulan dari node yang saling terhubung dengan node lain melalui sebuah pointer. Rangkaian Single Linked List tersebut diawali dengan sebuah head untuk menyimpan alamat awal dan di akhiri dengan node yang mengarah pointer ke NULL. Namun, pada Circular Single Linked List node terakhirnya mengandung pointer yang mengarahkan kepada node pertama sehingga akan membentuk seperti looping. Maka, pada list ini tidak terdapat NULL. Lebih sederhananya, Circular Single Linked List adalah Single Linked List yang tidak mengandung NULL

Untuk ilustrasinya dapat dilihat dari gambar berikut:

  • Doubly Linked List
Double Linked List adalah sekumpulan node data yang terurut linear atau sekuensial dengan dua data yang terurut linear atau sekuensial dengan dua buah pointer yaitu next dan previous. Double Linked List adalah linked list dengan node yang memiliki data dan dua buah reference link (biasa disebut next dan prev) yang menunjuk ke node sebelum dan node sesudahnya. Pada implementasinya, terdapat dua buah variasi linked list yaitu circular dan non-circular seperti pada Single Linked List yang sudah kita pelajari sebelumnya. Pembeda dari kedua tersebut juga adalah pada Circular Double Linked List tidak mempunyai nilai NULL. 

Contoh non-circular :


Contoh circular :


  • Doubly Linked List : Insert
Insert juga merupakan salah satu operasi yang dapat dilakukan pada Double Linked List. Sama seperti Single Linked List, insert ini berarti memasukkan node ke dalam linked list yang ada. Pertama, kita harus menentukan lokasi dimana node ini akan dimasukkan dan memberi value pada node ini. Setelah itu, kita akan menghubungkan node kepada linked list yang ada. Ada banyak cara untuk melakukan insert yaitu di depan head, di belakang tail, atau di antara head dan tail.
  • Doubly Linked List : Delete
Delete ini juga merupakan salah satu operasi pada Double Linked List. Pada operasi ini berfungsi untuk menghapus node pada suatu linked list.
Ada 4 kondisi yang perlu diperhatikan jika akan melakukan operasi delete :
vNode yang dihapus adalah satu-satunya node pada linked list tersebut.
vNode yang dihapus adalah bagian head.
vNode yang dihapus adalah bagian tail.
vNode yang dihapus adalah bukan head maupun tail.

Komentar

Postingan populer dari blog ini

AVL Tree

HEAP and TRIES

Summary