Buatlah program double linked list C++ dengan ketentuan : 1.

Berikut ini adalah pertanyaan dari fidelameruem pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas

Buatlah program double linked list C++ dengan ketentuan :1. User dapat input data berupa menambahkan data (tambah depan dan tambah belakang), menghapus data (hapus depan), menampilkan data, keluar dari program
2. Data yang di input hanya berupa nama barang dan harga barang
3. Buat function untuk menghitung total harga barang yang di input kan

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Jawaban:

Berikut ini adalah contoh implementasi program double linked list di C++ dengan ketentuan yang telah ditentukan:

Penjelasan:

#include <iostream>

using namespace std;

// Membuat struktur data barang

struct Barang {

string nama;

int harga;

};

// Membuat elemen double linked list

struct Node {

Barang data;

Node *prev, *next;

};

// Membuat kelas double linked list

class DoubleLinkedList {

private:

Node *head, *tail;

public:

// Konstruktor

DoubleLinkedList() {

head = NULL;

tail = NULL;

}

// Menambahkan elemen baru di awal double linked list

void addFirst(Barang data) {

// Membuat elemen baru

Node *newNode = new Node;

newNode->data = data;

newNode->prev = NULL;

newNode->next = NULL;

// Menambahkan elemen baru ke double linked list

if (head == NULL) {

// Jika double linked list kosong, maka elemen baru menjadi head dan tail

head = newNode;

tail = newNode;

} else {

// Jika double linked list tidak kosong, maka elemen baru menjadi head dan head sebelumnya menjadi elemen selanjutnya dari elemen baru

newNode->next = head;

head->prev = newNode;

head = newNode;

}

}

// Menambahkan elemen baru di akhir double linked list

void addLast(Barang data) {

// Membuat elemen baru

Node *newNode = new Node;

newNode->data = data;

newNode->prev = NULL;

newNode->next = NULL;

// Menambahkan elemen baru ke double linked list

if (tail == NULL) {

// Jika double linked list kosong, maka elemen baru menjadi head dan tail

head = newNode;

tail = newNode;

} else {

// Jika double linked list tidak kosong, maka elemen baru menjadi tail dan tail selanjutnya menjadi elemen sebelumnya dari elemen baru

newNode->prev = tail;

tail->next = newNode;

tail = newNode;

}

}

// Menghapus elemen di awal double linked list

void removeFirst() {

if (head == NULL) {

// Jika double linked list kosong, tidak ada yang bisa dihapus

cout << "Double linked list kosong" << endl;

} else if (head == tail) {

// Jika double linked list hanya memiliki satu elemen, hapus elemen tersebut dan buat head dan tail menjadi NULL

Node *temp = head;

head = NULL;

tail = NULL;

delete temp;

Semoga dengan pertanyaan yang sudah terjawab oleh pecintasolawatnabi10 dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.

Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact

Last Update: Thu, 09 Mar 23