Linked List
Node dan pointer, operasi insert/delete/search, perbandingan dengan array, serta varian doubly & circular.
dasar #linked list#pointer
SlideListLinier KonseptualList Kait Ganda
Linked list menyimpan data dalam node-node yang tersebar di memori. Setiap node berisi data (info/val)
dan pointer ke node berikutnya (next). Kita hanya perlu memegang pointer ke node pertama, yaitu head. Node
terakhir menunjuk ke null (atau Nil di notasi algoritmik).
Array vs linked list
| Array | Linked list | |
|---|---|---|
| Akses elemen ke-i | , langsung dihitung dari alamat | , harus berjalan dari head |
| Sisip/hapus di depan | , geser semua | , ubah head |
| Sisip/hapus di tengah (posisi diketahui) | setelah sampai di posisinya | |
| Ukuran | tetap (atau realokasi) | dinamis, tumbuh per node |
| Memori tambahan | tidak ada | 1 pointer per node |
Operasi dasar
Kunci memahami linked list: gambar kotak dan panahnya, lalu tentukan urutan perubahan pointer yang benar.
Varian
- Doubly linked list: tiap node punya
prevdannext. Hapus node yang sudah dipegang jadi tanpa mencari node sebelumnya, dengan biaya satu pointer tambahan per node. - Circular linked list: node terakhir menunjuk kembali ke head. Cocok untuk round-robin.
- Dengan dummy/sentinel head: node palsu di depan supaya insert/delete di awal tidak perlu kasus khusus.
Teknik dua pointer
Banyak soal linked list diselesaikan dengan dua pointer yang bergerak dengan kecepatan berbeda:
- Tengah list:
slowmaju 1,fastmaju 2. Saatfastsampai ujung,slowada di tengah. - Deteksi siklus (Floyd): jika ada siklus,
fastpasti akan “menyusul”slow.
Latihan: Reverse Linked List, Middle of Linked List, Gabung Dua List Terurut.
Latihan UTS & UAS
- UAS 2025 · No. 1Representasikan data dengan simpul dan tautan linked list.