Jumat, 28 Februari 2020

Linked List

Linked List adalah suatu struktur data linier. Linked List sendiri  dibentuk secara dinamik. Pada awal program dijalankan elemen linked list belum data. Elemen linked list (disebut node) dibentuk sambil jalan sesuai instruksi. Node yang ada pada Linked List diakses dengan cara menggunakan pointer yang mengacu (menunjuk) ke node tersebut.

Didalam Linked List terdapat juga istilah head dan tail.
  • Head merupakan elemen yang berada di posisi terdepan atau kepala.
  • Tail merupakan elemen yang berada di posisi paling belakang atau ekor.

Linked List sendiri terbagi menjadi beberapa jenis :

1.Single Linked List
  • 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.
  • Single Linked List hanya memiliki satu arah dan tidak memiliki dua arah atau bulak balik, dua arah tersebut disebut dengan double linked list.
2.Double Linked List
  • Double Linked List merupakan sebuah linked list yang memiliki dua variabel pointer yang menunjuk ke node selanjutnya dan pointer yang menunjuk ke node sebelumnya. Setiap head dan tail juga menunjuk ke NULL.


Terdapat juga keuntungan dan kerugiaan saat kita menggunakan Linked List:
-Keuntungan:
  1. Jenis data yang berbeda dapat di-link.
  2. Operasi REMOVE atau INSERT hanya dilakukan dengan mengubah pointer-nya saja.
-Kerugian:
  1. Diperlukan ruang tambahan untuk menyatakan/tempat field pointer. 
  2. Diperlukan waktu yang lebih banyak untuk mencari suatu node dalam linked list.