Jelaskan secara rinci tahapan proses insert dan delete pada Single

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

Jelaskan secara rinci tahapan proses insert dan delete pada Single Linked list!Lalu lakukan scenario berikut :
Inisiasi linked list 1 5 8 13 25 -> head = 1, tail 25 (berikan screenshot)
Insert(9) (berikan screenshot)
Insert(42) (berikan screenshot)
DeleteTail() (berikan screenshot)
DeleteHead (berikan screenshot)

Jawaban dan Penjelasan

Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.

Single Linked List adalah struktur data yang terdiri dari simpul-simpul yang memiliki pointer ke simpul selanjutnya. Setiap simpul terdiri dari dua bagian yaitu data dan pointer yang menunjuk ke simpul selanjutnya. Dalam single linked list, penambahan atau penghapusan elemen dapat dilakukan di awal, tengah, atau akhir list.

Berikut ini adalah tahapan proses insert dan delete pada single linked list:

1. Insert:

a. Insert di awal list:

Buat simpul baru dengan data yang ingin dimasukkan.

Atur pointer simpul baru untuk menunjuk ke simpul awal saat ini (head).

Atur head untuk menunjuk ke simpul baru.

b. Insert di tengah list:

Cari simpul sebelum simpul yang ingin dimasukkan.

Buat simpul baru dengan data yang ingin dimasukkan.

Atur pointer simpul baru untuk menunjuk ke simpul yang akan dituju.

Atur pointer simpul sebelumnya untuk menunjuk ke simpul baru.

c. Insert di akhir list:

Buat simpul baru dengan data yang ingin dimasukkan.

Atur pointer simpul akhir saat ini (tail) untuk menunjuk ke simpul baru.

Atur pointer simpul baru untuk menunjuk ke null.

2. Delete:

a. Delete di awal list:

Simpan data simpul awal saat ini (head).

Atur head untuk menunjuk ke simpul kedua.

Hapus simpul awal.

b. Delete di tengah list:

Cari simpul sebelum simpul yang akan dihapus.

Atur pointer simpul sebelumnya untuk menunjuk ke simpul setelah simpul yang akan dihapus.

Hapus simpul yang ingin dihapus.

c. Delete di akhir list:

Cari simpul sebelum simpul akhir saat ini (tail).

Atur pointer simpul sebelumnya untuk menunjuk ke null.

Simpan data simpul akhir saat ini.

Hapus simpul akhir.

Berikut adalah implementasi dari scenario yang diberikan:

// Inisiasi linked list 1 5 8 13 25

class Node {

public:

int data;

Node* next;

};

Node* head = NULL;

Node* tail = NULL;

void insert(int newData) {

Node* newNode = new Node();

newNode->data = newData;

newNode->next = NULL;

if (head == NULL) {

head = newNode;

tail = newNode;

} else {

tail->next = newNode;

tail = newNode;

}

}

void deleteHead() {

Node* temp = head;

if (head == NULL) {

return;

}

if (head == tail) {

head = NULL;

tail = NULL;

} else {

head = head->next;

}

delete temp;

}

void deleteTail() {

Node* temp = head;

if (head == NULL) {

return;

}

if (head == tail) {

head = NULL;

tail = NULL;

} else {

while (temp->next != tail) {

temp = temp->next;

}

temp->next = NULL;

tail = temp;

}

delete temp;

}

int main() {

// Inisiasi linked list

Semoga dengan pertanyaan yang sudah terjawab oleh fauzanramaadhn 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: Fri, 02 Jun 23