Program ini menggunakan 2 header yaitu stdio dan stdlib. Struct
node * del merupakan perintah
untuk menghapus node yang ada di dalam list pada posisi tertentu. Length digunakan untuk menentukan panjang node. Kemudian membuat record struct node yang berisi variabel data
betipe integer dan variabel link yang bertipe pointer dengan tipe struct node.
Struct node * insert digunakan untuk memasukkan
data pada variabel pointer *head.
Membuat variabel pointer *temp. Membuat kondisi jika variabel head
tidak memiliki nilai (Null) maka nilainya sama dengan alokasi memori pada struct
node karena ada perintah malloc.
Kemudian ada kondisi lagi jika jika variabel head tidak memiliki nilai
(Null) maka akan print “error” dan keluar program.
Selain kondisi diatas, maka akan memberi
nilai variabel temp sama dengan head. Menggunakan perulangan while dengan
syarat selama nilai temp yang
diakses oleh link tidak sama dengan
NULL, maka akan menjalankan nilai temp
sama dengan nilai temp yang diakses
oleh link (temp-> link). Kemudian memberikan nilai baru pada temp-> link sama dengan alokasi
memori pada struct node. Kemudian
dibuat kondisi jika nilai temp->link
sama dengan NULL maka akan di cetak “error” dan keluar dari program. Kemudian
memberi nilai temp sama dengan nilai temp->link;
nilai temp->data sama dengan
nilai n; dan nilai temp -> link sama dengan NULL.
Setelah keluar dari else program akan mengembalikan nilai head.
Membuat class printlist dengan pointer *pnode. Menggunakan percabangan jika
nilai pnode tidak sama dengan NULL maka akan menjalankan perulangan while.
Perulangan akan dijalankan selama nilai pnode
tidak sama dengan NULL. Perulangan yang dijalankan adalah mencetak nilai dari pnode->data, kemudian memberi nilai
baru pada variabel pnode sama dengan nilai pnode->link.
Selain kondisi diatas, maka akan mencetak “Linkedlist Kosong”.
Ini merupakan kelas utama. Mendeklarasikan
variabel n, x, i yang bernilai 0.
Kemudian membuat pointer *start
dengan nilai NULL. Mencetak string dan kemudian mengambil inputan dan memasukan
nilai tersebut kedalam n. kemudian
menggunakan perulangan for. Untuk nilai i
sama dengan 0, selama nilai i lebih
kecil dari n maka perulangan akan
tetap berjalan, nilai i bertambah 1
setiap perulangan. Statement yang dijalankan adalah mencetak string kemudian
mengambil inputan dan memasukkan nilai tersebut kedalam n. fflush(stdin) berfungsi menghapus input buffer. Kemudian
memasukkan nilai ke pointer start
sama dengan nilai start pada address ke-x.
Kemudian mencetak string dan semua isi (list)
pointer start. Mencetak string lagi,
mengambil inputan dan memasukkan ke dalam variabel n. Lalu menghapus nilai start
address ke-n. Cetak string lalu
mencetak isi (list) start yang baru.
System(“pause”)
digunakan agar layar tidak langsung menutup setelah program selesai.
Blok ini mendeklarasikan isi dari struct
node * del dan membuat variabel counter node_no. Membuat pointer *prev
dan *curr serta variabel i. Kemudian struktur kondisi jika nilai
head sama dengan NULL maka akan
mencetak string. Selain kondisi tersebut, maka akan memberikan nilai prev = NULL; curr = head; dan i=1. Kemudian melakukan perulangan
dengan kondisi selama nilai i lebih
kecil dari node_no maka perulangan
tetap berjalan. Perulangan berisi statement memberi nilai prev=curr; curr=head;
dan i=i+1.
Ada kondisi lagi, jika nilai prev sama dengan NULL maka nilai head adalah nilai curr yang diakses oleh link dan mengembalikan nilai curr dengan perintah free.
Selain kondisi diatas maka akan dijalankan nilai prev->link sama dengan nilai curr->link dan mengembalikan nilai curr dengan perintah free.
Blok ini menjelaskan isi dari length.
Mendeklarasikan variabel pjg =0.
Menggunakan perulangan while dengan kondisi selama nilai pnode tidak sama dengan NULL maka perulangan akan terus berjalan.
Isi dari perulangan adalah nilai pjg
bertambah 1 dan nilai pnode sama dengan
pnode->link. Setelah keluar maka
akan mengembalikan nilai pjg
OUTPUT