Implementasi Linked List C++
Pada blog ini akan membahas tentang implementasi linked list pada bahasa C++
Fungsi Dasar
Ada 5 fungsi dasar dalam linked list yakni sebagai berikut.
Inserting
Fungsi ini digunakan untuk melakukan insert kedalam node.
void insertion(Node*& node, int val){
Node* newnode = new Node();
newnode->data = val;
newnode->next = node;
node = newnode;
}
Deleting
Fungsi ini digunakan untuk menghapus node.
void deletion(Node* node, int val){
if (node == NULL) return;
if (node->data == val){
Node* temp = node;
node = node->next;
delete temp;
return;
}
Node* current = node;
while(current->next != NULL && current->next->data != val){
current = current->next;
}
if (current->next != NULL){
Node* temp = current->next;
current->next = current->next->next;
delete temp;
}
}
Traversal
Fungsi ini hanya mengeluarkan output berupa isi linked list.
void traversal(Node* node){
Node* current = node;
while (current != NULL){
cout << current->data << "->";
current = current->next;
}
cout << "NULL\n";
}
Searching
Fungsi ini bertujuan untuk mencari sebuah nilai pada sebuah node.
void searching(Node* node, int val){
Node* current = node;
while (current!=NULL){
if(current->data == val){
cout << "Data found";
break;
}
current = current->next;
}
}
Updating
Fungsi ini digunakan untuk merubah nilai sebuah node.
void updating(Node* node, int val, int update){
Node* current = node;
while(current!=NULL){
if (current->data == val) current->data = update;
current = current->next;
}
}
Implementasi Lengkap
#include <bits/stdc++.h>
using namespace std;
struct Node{
int data;
Node* next;
};
void traversal(Node* node){
Node* current = node;
while (current != NULL){
cout << current->data << "->";
current = current->next;
}
cout << "NULL\n";
}
void insertion(Node*& node, int val){
Node* newnode = new Node();
newnode->data = val;
newnode->next = node;
node = newnode;
}
void deletion(Node* node, int val){
if (node == NULL) return;
if (node->data == val){
Node* temp = node;
node = node->next;
delete temp;
return;
}
Node* current = node;
while(current->next != NULL && current->next->data != val){
current = current->next;
}
if (current->next != NULL){
Node* temp = current->next;
current->next = current->next->next;
delete temp;
}
}
void searching(Node* node, int val){
Node* current = node;
while (current!=NULL){
if(current->data == val){
cout << "Data found";
break;
}
current = current->next;
}
}
void updating(Node* node, int val, int update){
Node* current = node;
while(current!=NULL){
if (current->data == val) current->data = update;
current = current->next;
}
}
int main(void){
Node* node = NULL;
insertion(node, 30);
insertion(node, 20);
insertion(node, 10);
cout << "Setelah insertion: \n";
traversal(node);
cout << "\nMencari angka 20: \n";
searching(node, 20);
cout << "\nUpdate angka 20 menjadi 25: \n";
updating(node, 20, 25);
traversal(node);
cout << "\nHapus angka 25: \n";
deletion(node, 25);
traversal(node);
return 0;
}
Untuk mengimplementasikan linked list tentunya harus membuat sebuah struct yang terdiri dari linked list value (data) dan node selanjutnya (next). Untuk melakukan operasi dengan fungsi yang sudah dibuat, isi fungsi sesuai parameter yang dibutuhkan. Berikut adalah output dari main program tersebut.
Source Code
https://github.com/xbggnr/Linked-list-implementation.git
-- Terima Kasih --
Komentar
Posting Komentar