Pengertian Linked List

Pengertian, Macam - macam, dan Penggunaan Linked List dalam C++

Linked list adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya terdiri dari dua bagian Linked list juga merupakan suatu cara untuk menyimpan data dengan struktur sehingga dapat secara otomatis menciptakan suatu tempat baru untuk menyimpan data yangdiperlukan. Struktur ini lebih dinamis karena banyaknya elemen dengan mudah ditambah atau dikurangi, berbeda dengan array yang ukurannya tetap. berikut gambaran kecil mengenai linked list.



Didalam Linked List terdapat beberapa bagian lagi


       1. Linked List Circular


Double Linked List
       Pengertian secara umumnya DLLC itu Linked list yang menggunakan pointer, dimana setiap node memiliki 3 field, yaitu:
1 field pointer yang menunjuk pointer berikutnya "next",
1 field menunjuk pointer sebelumnya " prev ",
1 field yang berisi data untuk node tersebut .


Double Linked List Circular pointer next dan prev nya menunjuk kedirinya sendiri secara circular. Bentuk Node DLLC




Single Linked List   
             Single Linked List Circular (SLLC) adalah Single Linked List yang pointer nextnya menunjuk pada dirinya sendiri. Jika Single Linked List tersebut terdiri dari beberapa node, maka pointer next pada node terakhir akan menunjuk ke node terdepannya.
 


         2. Linked List Non Circular


Double Linked List Non Circular (DLLNC)


             adalah Double Linked List yang memiliki 2 buah pointer yaitu pointernext dan prev.
Pointer next menunjuk pada node setelahnya dan pointer prev menunjuk pada node sebelumnya.


Pengertian:
Double : artinya field pointer-nya dua buah dan dua arah, ke node sebelum dan sesudahnya.
Linked List : artinya node-node tersebut saling terhubung satu sama lain.
Non Circular : artinya pointer prev dan next-nya akan menunjuk pada NULL.





Single Linked List Non Circular (SLLNC)

             Adalah Linked List yang pointer nya selalu mengarah ke Node yang menampung *next bernilai NULL, jadi arahnya tidak menunjuk pointer didepannya sehingga tidak dapat kembali ke pointer - pointer sebelumnya. SLLNC ini juga memiliki 2 bagian, ada Tambah dan ada Hapus, masing - masing bagian ini juga masih meliputi 3 fungsi lain yaitu Belakang, Tengah, dan depan.




Operasi-Operasi yang ada pada Linked List
Insert
Istilah Insert berarti menambahkan sebuah
simpul baru ke dalam suatu linked list.
IsEmpty
Fungsi ini menentukan apakah linked list
kosong atau tidak.
Find First
Fungsi ini mencari elemen pertama dari linked list
Find Next
Fungsi ini mencari elemen sesudah elemen yang
ditunjuk now
Retrieve
Fungsi ini mengambil elemen yang ditunjuk oleh now. Elemen tersebut lalu dikembalikan oleh
fungsi.
•Update
Fungsi ini mengubah elemen yang ditunjuk oleh now dengan isi dari sesuatu
Delete Now
Fungsi ini menghapus elemen yang ditunjuk oleh now. Jika yang dihapus
adalah elemen pertama dari linked list (head), head akan berpindah ke
elemen berikut.
Delete Head
Fungsi ini menghapus elemen yang ditunjuk head. Head berpindah ke elemen
sesudahnya.
Clear
Fungsi ini menghapus linked list yang sudah
ada. Fungsi ini wajib dilakukan
bila anda ingin mengakhiri program yang
menggunakan linked list. Jika anda
melakukannya, data-data yang dialokasikan ke
memori pada program
sebelumnya akan tetap tertinggal di dalam
memori.

Operasi Penghapusan
•Penghapusan node dilakukan dengan
memutus rantai node
kemudian menghapus node. Jika node
berada di tengah rangkaian,
rangkaian yang terputus perlu disambung
kembali. Untuk
memudahkan penghapusan simpul
dibutuhkan dua cursor sebagai
simpul bantu. Selain cursor juga
dibutuhkan simpul head sebagai
acuan awal simpul dalam rangkaian.
Berikut langkah langkah untuk menghapus
simpul dalam
rangkaian:
•Buat cursor bantu yang menunjuk ke
awal node(simpul).
•Pindahkan cursor ke node berikutnya
•Putus sambungan awal node dengan node
berikutnya.
•Hapus rangkaian
•Jika berada di akhir rangkaian, putuskan
dari rangkaian
sebelumnya
•Jika di tengah rangkaian, pindahkan
penunjukan node berikutnya,
atau di akhir, atau setelah node yang
akan dihapus
Pengertian :
Node : rangkaian beberapa simpul
Single : artinya field pointer-nya hanya
satu buah saja dan satu arah.
Linked List : artinya node-node tersebut
saling terhubung satu sama lain.
Circular : artinya pointer next-nya akan
menunjuk pada dirinya sendiri
sehingga berputar.

Contoh Program Linked List C++
Insert dan Delete Node dalam Single Linked List
Insert (push) dan delete (pop) node pada linked list dapat dilakukan pada posisi depan (head), tengah (mid) dan belakang (tail)

Insert (Push)
Contoh codingan push depan :
Contoh codingan push belakang :

Delete (Pop)
Contoh codingan pop depan :

Contoh codingan pop belakang :

Insert dan Delete Node dalam Double Linked List
Insert (push) dan delete (pop) node pada linked list dapat dilakukan pada posisi depan (head), tengah (mid) dan belakang (tail)

Insert (Push)
Contoh codingan push depan :

Contoh codingan push belakang :

Delete (Pop)
Contoh codingan pop depan :

Contoh codingan pop belakang :

Header Linked List
Selain ke-4 jenis Linked List diatas, ada juga jenis lain yaitu header linked list. Header linked list merupakan header spesial yang terdiri dari node headernya. Jadi, linked list jenis ini tidak menunjuk pada node pertama (head) namun hanya menyimpan alamat dari node headernya.

Priority Queue
Priority Queue mirip dengan queue biasa yang telah dijelaskan pada Array, Pointer dan Struktur Data yang dipost sebelumnya. Hanya saja queue ini di urutkan berdasarkan prioritasnya. Misalnya kita ingin membuat queue berdasarkan umur yang paling muda ke tua. Maka umur menjadi prioritas. Penyusunan node ini mungkin mirip seperti sorting.

contoh codingan priority queue :


Referensi :
https://softsein.000webhostapp.com/2018/04/kuliah-senarai-berantai-linked-list-struktur-data  
http://suciantinovi.blogspot.co.id/2014/03/linked-list-i_14.html 

Komentar

Postingan populer dari blog ini

Latihan Soal Algoritma dan Struktur Data

Program Queue (Antrian)