Wednesday, February 26, 2020

Single Linked List

Single Linked List adalah sekumpulan node yang saling dihubungkan oleh sebuah pointer. Sebuah rangkaian Single Linked List selalu diawali dengan sebuah head untuk menunjukkan alamat awal dan diakhiri dengan pointer yang mengarah ke Null. Disebut Single karena pointernya hanya memiliki satu arah dan bukan dua arah atau bolak-balik.

Single Linked list pada umumnya terdapat dua macam, Circular dan Non- Circular.




Berikut adalah ilustrasi single linked list Non-Circular :




Berikut adalah ilustrasi single linked list Circular :

Dengan kata lain, Single Linked List Circular adalah Single Linked List yang pointer nextnya menunjuk pada dirinya sendiri.





Double Linked List adalah rangkaian Linked List yang memiliki 2 arah pointer yang merujuk pada Next Node (Node Sesudahnya) dan Prev Node (Node Sebelumnya). Sama halnya dengan Single Linked List, Double Linked List juga terdapat 2 macam yaitu Non-Circular dan Circular.



Berikut adalah ilustrasi double linked list Non-Circular :




Berikut adalah ilustrasi double linked list Circular :






OPERASI PADA DOUBLE LINKED LINK

Double linked list memiliki beberapa operasi dasar pada list:

1. INSERT FIRST
Penyisipan di awal list, sehingga pointer tail juga akan berpindah ke elemen baru.


2. INSERT LAST
Penyisipan di akhir list, sehingga pointer tail juga akan berpindah ke elemen baru.



3. INSERT AFTER/BEFORE
Penyisipan after/before kurang lebih sama satu sama lain. Pada kasus di atas berlaku juga insert before 3.



                                                   Gambar 1 : After


                                                       Gambar 2 : Before

4. DELETE FIRST
Penghapusan di awal list, pointer head akan berpindah ke node selanjutnya, sementara node awal akan di dealokasi.



5. DELETE LAST
Penghapusan di akhir list, pointer tail akan berpindah ke node sebelumnya, sementara node akhir akan di dealokasi.



6. DELETE NODE
Penghapusan node dengan data tertentu, pada kasus di atas yaitu delete node 2.