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

  1. Insert di awal (beginning)
  2. Insert di tengah (middle)
  3. 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

  1. Hapus di awal
  2. Hapus di tengah
  3. 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

Popular posts from this blog

Evaluasi Tengah Semester - Struktur Data

Review C++