Linked List
Linked List
8 Linked List
Linked list adalah struktur data linear yang mendasarkan diri pada konsep
node, di mana setiap node memiliki dua komponen utama: data yang menyimpan
nilai, dan pointer yang menunjukkan ke node berikutnya dalam urutan. Singly linked
list, salah satu jenis linked list, memiliki setiap node yang terhubung ke node
berikutnya dalam satu arah. Ini memulai dari node pertama yang disebut head dan
berakhir dengan node terakhir yang menunjuk ke nullptr. Doubly linked list, di sisi
lain, memungkinkan setiap node untuk memiliki dua pointer: satu menunjuk ke node
sebelumnya dan satu lagi ke node berikutnya, memungkinkan akses maju dan
mundur. Circular linked list, yang merupakan variasi dari linked list, memiliki node
terakhir yang menunjuk kembali ke node pertama, membentuk lingkaran. Ini
menyediakan navigasi sekuensial dalam struktur data dan dapat berguna dalam
situasi yang memerlukan representasi sirkular atau siklik data. Pemilihan jenis linked
list yang tepat tergantung pada kebutuhan spesifik aplikasi dan kompleksitas operasi
diinginkan, masing-masing dengan kelebihan dan kelemahan mereka sendiri.
1. Singly Linked List:
Singly linked list adalah struktur data linear di mana setiap elemen, atau node,
memiliki dua bagian: data dan pointer ke node berikutnya dalam urutan.
Karakteristik dasar dari singly linked list adalah:
A. Setiap node hanya memiliki satu pointer yang menunjuk ke node berikutnya.
B. Linked list dimulai dari node pertama yang disebut head dan berakhir dengan
node terakhir yang pointer next-nya menunjuk ke nullptr.
C. Operasi penambahan dan penghapusan di depan linked list adalah operasi
yang cepat, tetapi operasi pencarian memerlukan pencarian sekuensial dari
awal hingga node target.
2. Doubly Linked List:
Doubly linked list adalah struktur data linear di mana setiap elemen, atau node,
memiliki tiga bagian: data, pointer ke node sebelumnya, dan pointer ke node
berikutnya dalam urutan. Karakteristik dasar dari doubly linked list adalah:
A. Setiap node memiliki dua pointer: satu menunjuk ke node sebelumnya (prev),
dan satu lagi menunjuk ke node berikutnya (next).
B. Linked list memiliki akses maju dan mundur, karena setiap node memiliki
informasi tentang node sebelumnya dan node berikutnya.
C. Operasi penambahan dan penghapusan node di depan atau di belakang linked
list dapat dilakukan dengan cepat.
D. Tambahan memori yang digunakan untuk menyimpan pointer tambahan.
3. Circular Linked List:
Circular linked list adalah struktur data linear di mana node terakhir dalam linked
list menunjuk kembali ke node pertama, membentuk lingkaran atau cincin.
Karakteristik dasar dari circular linked list adalah:
A. Node terakhir dalam linked list menunjuk kembali ke node pertama,
membentuk lingkaran.
B. Tidak ada node yang menunjuk ke nullptr, karena setiap node memiliki
pointer yang menunjuk ke node berikutnya.
Linked list adalah struktur data linear yang terdiri dari rangkaian elemen yang
disebut "node". Setiap node berisi dua bagian: data dan referensi (atau pointer) ke
node berikutnya dalam urutan. Keuntungan utama dari linked list adalah ukurannya
yang dinamis dan kemampuan untuk melakukan penambahan atau penghapusan
elemen dengan efisien tanpa perlu menggeser elemen lain, seperti yang diperlukan
pada array. Terdapat beberapa jenis linked list, termasuk singly linked list di mana
setiap node memiliki satu pointer ke node berikutnya, doubly linked list di mana
setiap node memiliki dua pointer (satu ke node berikutnya dan satu lagi ke node
sebelumnya), dan circular linked list di mana node terakhir menunjuk kembali ke
node pertama, membentuk lingkaran. Operasi dasar pada linked list meliputi
penambahan node (di awal, di akhir, atau di tengah), penghapusan node (dari awal,
dari akhir, atau dari tengah), dan pencarian node (berbasis nilai atau posisi).
Meskipun linked list menawarkan kelebihan seperti ukuran yang dinamis dan
efisiensi dalam penambahan dan penghapusan elemen, mereka juga memiliki
kekurangan seperti overhead memori tambahan untuk menyimpan pointer dan akses
elemen yang lebih lambat dibandingkan dengan array. Linked list banyak digunakan
dalam berbagai aplikasi, termasuk implementasi struktur data lain seperti stack dan
queue, manajemen memori dinamis dalam sistem operasi, dan sebagai dasar untuk
membangun struktur data yang lebih kompleks seperti grafik dan pohon. Dalam
perbandingan dengan array, linked list lebih efisien dalam operasi penambahan dan
penghapusan, tetapi kurang efisien dalam akses elemen acak. Konsep lanjutan dari
linked list termasuk penggunaan sentinel nodes untuk mempermudah operasi dan
struktur yang mereferensikan diri sendiri untuk menjaga keterkaitan antar node.
Selain linked list, ada beberapa struktur data penting lainnya yang sering
digunakan dalam pemrograman. Stack adalah struktur data linear yang mengikuti
prinsip Last In, First Out (LIFO), di mana elemen terakhir yang ditambahkan adalah
elemen pertama yang akan dihapus. Operasi dasar pada stack meliputi push
(menambahkan elemen ke puncak), pop (menghapus elemen dari puncak), dan peek
(melihat elemen di puncak tanpa menghapusnya). Stack banyak digunakan dalam
pengelolaan panggilan fungsi rekursif, implementasi mekanisme undo, dan evaluasi
ekspresi aritmatika. Memahami berbagai struktur data ini sangat penting dalam
pengembangan perangkat lunak yang efisien dan optimal, karena masing-masing
memiliki keunggulan dan kekurangan yang sesuai untuk berbagai jenis aplikasi.
3.1.8 Linked list
1. Singly Linked List