Setelah kemarin saya posting tentang cara menambahkan data link list c++, sekarang saatnya posting tentang cara menghapus data pada link list c++.
Perlu diketahui bahwa pada link list ini kita dapat menghapus data baik dari depan, belakang, bahkan dari tengah. Nah untuk lebih jelasnya bisa lihat gambar berikut.
Paham kan dari gambarnya?
Source code menghapus data pada link list c++ :
void
hapusDepan(){
TNode
*hapus;
int
d;
if
(isEmpty()==0){
if(head!=tail){
hapus
= head;
d
= hapus->data;
head
= head->next;
delete
hapus;
}
else {
d
= tail->data;
head=tail=NULL;
}
cout<<endl<<d<<"
Terhapus\n";
}
else cout<<"Masih
kosong\n";
cout<<"==================="<<endl;
}
void
hapusTengah(){
TNode
*bantu,*hapus;
int
d;
if
(isEmpty()==0){
if(head!=tail){
hapus
= bantu;
d
= hapus->data;
head
= head->next;
delete
hapus;
}
else {
d
= tail->data;
head=tail=NULL;
}
cout<<endl<<d<<"
terhapus\n";
}
else cout<<"Masih
kosong\n";
cout<<"==================="<<endl;
}
void
hapusBelakang(){
TNode
*bantu,*hapus;
int
d;
if
(isEmpty()==0){
bantu
= head;
if(head!=tail){
while(bantu->next!=tail){
bantu
= bantu->next;
}
hapus
= tail;
tail=bantu;
d
= hapus->data;
delete
hapus;
tail->next
= NULL;
}else
{
d
= tail->data;
head=tail=NULL;
}
cout<<endl<<d<<"
terhapus\n";
}
else cout<<"Masih
kosong\n";
cout<<"==================="<<endl;
}
void
clear()
{
TNode
*bantu,*hapus;
bantu
= head;
while(bantu!=NULL)
{
hapus
= bantu;
bantu
= bantu->next;
delete
hapus;
}
head
= NULL;
tail
= NULL;
}