Linked List C++
Implementasi Linked List dalam C++
Pengertian Linked List
Linked List adalah struktur data yang terdiri dari sekumpulan node yang saling terhubung melalui pointer. Berbeda dengan array, Linked List tidak disimpan secara berurutan di memori, melainkan setiap node menyimpan alamat node berikutnya.
Struktur Node
Setiap node dalam Linked List terdiri dari dua bagian utama:
- Data → menyimpan nilai
- Pointer (next) → menunjuk ke node berikutnya
Implementasi Node ke C++
Berikut contoh sederhana pembuatan Linked List dengan 3 node:
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
int main() {
Node* node1 = new Node();
Node* node2 = new Node();
Node* node3 = new Node();
node1->data = 10;
node2->data = 20;
node3->data = 30;
node1->next = node2;
node2->next = node3;
node3->next = NULL;
Node* current = node1;
while (current != NULL) {
cout << current->data << " -> ";
current = current->next;
}
cout << "NULL";
return 0;
}Output
Source Code: Linkedlist
Penjelasan Singkat
Program di atas membuat tiga node yang saling terhubung, lalu menampilkan seluruh isi Linked List menggunakan proses traversal.
Jenis Linked List
Beberapa jenis Linked List yang umum digunakan:
- Singly Linked List → hanya memiliki pointer ke node berikutnya
- Doubly Linked List → memiliki pointer ke node sebelumnya dan berikutnya
- Circular Linked List → node terakhir menunjuk kembali ke node pertama
Operasi pada Linked List
Dalam Linked List, terdapat beberapa operasi dasar yang sering digunakan.
Traversal
Traversal adalah proses mengunjungi setiap node dari awal hingga akhir.
Cara Kerja
- Dimulai dari head
-
Bergerak menggunakan pointer
next -
Berhenti saat
NULL
Contoh Kode
Node* current = head;
while (current != NULL) {
cout << current->data << " ";
current = current->next;
}
Insertion (Penyisipan)
Insertion adalah proses menambahkan node baru ke dalam Linked List.
Jenis Insertion
- Insert di awal (beginning)
- Insert di tengah (middle)
- Insert di akhir (end)
Contoh Insert di Awal
Node* newNode = new Node();
newNode->data = 10;
newNode->next = head;
head = newNode;
Deletion (Penghapusan)
Deletion adalah proses menghapus node dari Linked List.
Jenis Deletion
- Hapus di awal
- Hapus di tengah
- Hapus di akhir
Contoh Hapus di Awal
Node* temp = head;
head = head->next;
delete temp;
Searching (Pencarian)
Searching digunakan untuk mencari data tertentu dalam Linked List.
Cara Kerja
- Dilakukan dengan traversal
- Membandingkan setiap node
Contoh Kode
Node* current = head;
while (current != NULL) {
if (current->data == key) {
cout << "Data ditemukan";
break;
}
current = current->next;
}
Updating (Perubahan Data)
Updating digunakan untuk mengubah nilai data dalam node tertentu.
Contoh Kode
Node* current = head;
while (current != NULL) {
if (current->data == 10) {
current->data = 100;
}
current = current->next;
}
Comments
Post a Comment