Struktur Data Single Linked List

Struktur Data Single Linked List

      Single Linked List adalah salah satu dasar dalam struktur data yang terdiri dari beberapa Node berisi Data dan Pointer ke Node berikutnya, sehingga setiap Node akan saling tehubung menjadi sekumpulan data dimulai dari Node pertama yaitu Head yang berupa data sampai dengan Node terakhir yaitu Tail yang bernilai null.

Pointer Single Linked List.png

Karakteristik

  1. Ukurannya Dinamis bisa bertambah atau berkurang secara dinamis menyesuaikan dengan kebutuhan
  2. Traversal, untuk mencari data tertentu kita harus menelusuri satu-persatu dari Head sampai dengan Tail.
  3. Non Indeks, Single linked list tidak bisa diakses langsung menggunakan indeks seperti array karena memiliki struktur penyimpanan data yang berbeda. Array menyimpan data secara berurutan didalam memori tetapi single linked list menyimpan data secara acak dan saling terhubung melalui Pointer

Penambahan

1. Diawal

penambahan diawal SLL.png

Untuk menambahkan data diawal pada Single Linked List Node baru akan menjadi Head sedangkan Node lama akan bergeser ke next

Kode java :

 

2. Spesifik

penambahan ditengah sll.png

 

Node baru akan ditempatkan diantara dua Node yang sudah ada dengan cara mencari node yang setelahnya ingin kita tambahkan node baru lalu buat node baru setelah itu atur next node baru ke next dari node yang ditemukan dan ubah next dari node lama agar merujuk ke node baru.

Kode java:

3. Diakhir

penambahan diakhir.png

Node baru akan ditambahkan kedalam data sebelum Tail dengan cara mencari Node yang memiliki next bernilai null lalu ubah next agar memiliki Pointer ke Node baru

Kode Java :

 Full code Java : Github

Penghapusan

1. Diawal

penghapusan diawal sll.png

Penghapusan diawal akan menghapus Node pertama alias Head dengan cara menyimpan Head saat ini kedalam temp agar akses data tidak hilang lalu pindahkan Pointer ke Node selanjutnya agar menjadi Head.

Kode Java:

 

2. Spesifik

 penghapusan spesifik.png

Cari Node yang akan dihapus lalu ubah Pointer next dari node sebelumya agar melewati node yang akan dihapus.

Kode Java:

 

3. Diakhir

 penghapusan diakhir sll.png

Telusuri Node sebelum Tail lalu hapus Node tersebut dengan cara mengubahnya menjadi null

Kode Java:

 

Full code Java : Github