```cpp
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
// Tambah di depan
void tambahDepan(Node*& head, int nilai) {
Node* baru = new Node;
baru->data = nilai;
baru->next = head;
head = baru;
}
// Tambah di belakang
void tambahBelakang(Node*& head, int nilai) {
Node* baru = new Node;
baru->data = nilai;
baru->next = NULL;
if (head == NULL) {
head = baru;
return;
}
Node* bantu = head;
while (bantu->next != NULL) {
bantu = bantu->next;
}
bantu->next = baru;
}
// Hapus node berdasarkan nilai
void hapusNode(Node*& head, int nilai) {
if (head == NULL) {
cout << "List kosong." << endl;
return;
}
if (head->data == nilai) {
Node* hapus = head;
head = head->next;
delete hapus;
return;
}
Node* bantu = head;
while (bantu->next != NULL && bantu->next->data != nilai) {
bantu = bantu->next;
}
if (bantu->next == NULL) {
cout << "Data tidak ditemukan." << endl;
return;
}
Node* hapus = bantu->next;
bantu->next = hapus->next;
delete hapus;
}
// Cari nilai
bool cariNode(Node* head, int nilai) {
Node* bantu = head;
while (bantu != NULL) {
if (bantu->data == nilai) return true;
bantu = bantu->next;
}
return false;
}
// Tampilkan isi list
void tampilkan(Node* head) {
if (head == NULL) {
cout << "List kosong." << endl;
return;
}
Node* bantu = head;
while (bantu != NULL) {
cout << bantu->data << " -> ";
bantu = bantu->next;
}
cout << "NULL" << endl;
}
// Hapus seluruh list
void hapusSemua(Node*& head) {
while (head != NULL) {
Node* hapus = head;
head = head->next;
delete hapus;
}
}
int main() {
Node* head = NULL;
tambahDepan(head, 10);
tambahDepan(head, 5);
tambahBelakang(head, 20);
tambahBelakang(head, 30);
cout << "Isi list: ";
tampilkan(head);
hapusNode(head, 20);
cout << "Setelah hapus 20: ";
tampilkan(head);
if (cariNode(head, 30))
cout << "30 ditemukan." << endl;
else
cout << "30 tidak ditemukan." << endl;
hapusSemua(head);
return 0;
}
``````cpp
#include <iostream>
using namespace std;
struct Node {
int data;
Node* next;
};
// Tambah di depan
void tambahDepan(Node*& head, int nilai) {
Node* baru = new Node;
baru->data = nilai;
baru->next = head;
head = baru;
}
// Tambah di belakang
void tambahBelakang(Node*& head, int nilai) {
Node* baru = new Node;
baru->data = nilai;
baru->next = NULL;
if (head == NULL) {
head = baru;
return;
}
Node* bantu = head;
while (bantu->next != NULL) {
bantu = bantu->next;
}
bantu->next = baru;
}
// Hapus node berdasarkan nilai
void hapusNode(Node*& head, int nilai) {
if (head == NULL) {
cout << "List kosong." << endl;
return;
}
if (head->data == nilai) {
Node* hapus = head;
head = head->next;
delete hapus;
return;
}
Node* bantu = head;
while (bantu->next != NULL && bantu->next->data != nilai) {
bantu = bantu->next;
}
if (bantu->next == NULL) {
cout << "Data tidak ditemukan." << endl;
return;
}
Node* hapus = bantu->next;
bantu->next = hapus->next;
delete hapus;
}
// Cari nilai
bool cariNode(Node* head, int nilai) {
Node* bantu = head;
while (bantu != NULL) {
if (bantu->data == nilai) return true;
bantu = bantu->next;
}
return false;
}
// Tampilkan isi list
void tampilkan(Node* head) {
if (head == NULL) {
cout << "List kosong." << endl;
return;
}
Node* bantu = head;
while (bantu != NULL) {
cout << bantu->data << " -> ";
bantu = bantu->next;
}
cout << "NULL" << endl;
}
// Hapus seluruh list
void hapusSemua(Node*& head) {
while (head != NULL) {
Node* hapus = head;
head = head->next;
delete hapus;
}
}
int main() {
Node* head = NULL;
tambahDepan(head, 10);
tambahDepan(head, 5);
tambahBelakang(head, 20);
tambahBelakang(head, 30);
cout << "Isi list: ";
tampilkan(head);
hapusNode(head, 20);
cout << "Setelah hapus 20: ";
tampilkan(head);
if (cariNode(head, 30))
cout << "30 ditemukan." << endl;
else
cout << "30 tidak ditemukan." << endl;
hapusSemua(head);
return 0;
}
```
Thread
0 replies
Have something to add?
Sign inLast updated on 11af8bf