- Menggunakan 1 pointer head
- Head selalu menunjuk node pertama
Deklarasi Pointer Head
Manipulasi linked list tidak bisa dilakukan langsung ke node yang
dituju, melainkan harus melalui node pertama dalam linked list.
Deklarasinya sebagai berikut:
TNode *head;
Fungsi Inisialisasi LinkedList
void init()
{
head = NULL;
}
Function untuk mengetahui kosong tidaknya LinkedList
int isEmpty()
{
if(head == NULL) return 1;
else return 0;
}PENAMBAHAN DATA
Penambahan data di depan
- Penambahan node baru akan dikaitan di node paling depan, namun
pada saat pertama kali (data masih kosong), maka penambahan data
dilakukan pada head nya.
- Pada prinsipnya adalah mengkaitkan data baru dengan head, kemudian
head akan menunjuk pada data baru tersebut sehingga head akan tetap
selalu menjadi data terdepan.
-
void insertDepan(int databaru)
{
TNode *baru;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
baru->prev = NULL;
if(isEmpty()==1){
head=baru;
head->next = NULL;
head->prev = NULL;
}
else
{
baru->next = head;
head->prev = baru;
head = baru;
}
cout<<”Data masuk\n”; } Penambahan data di belakang -
Penambahan data dilakukan di belakang, namun pada saat pertama kali data
langsung ditunjuk pada head-nya. - Penambahan di belakang lebih sulit
karena kita membutuhkan pointer bantu untuk mengetahui data terbelakang,
kemudian dikaitkan dengan data baru. Untuk mengetahui data terbelakang
perlu digunakan perulangan. void insertBelakang (int databaru) { TNode
*baru,*bantu; baru = new TNode; baru->data = databaru;
baru->next = NULL;
baru->prev = NULL;
if(isEmpty()==1)
{
head=baru;
head->next = NULL;
head->prev = NULL;
}
else
{
bantu=head;
while(bantu->next!=NULL)
{
bantu=bantu->next;
}
bantu->next = baru;
baru->prev = bantu;
}
cout<<"Data masuk\n"; } Function untuk menampilkan isi linked
list void tampil() { TNode *bantu; bantu = head; if(isEmpty()==0) {
while(bantu!=NULL) { cout<data<<" "; bantu=bantu->next;
}
cout<next != NULL)
{
hapus = head;
d = hapus->data;
head = head->next;
head->prev = NULL;
delete hapus;
}
else
{
d = head->data;
head = NULL;
}
cout<next != NULL)
{
hapus = head;
while(hapus->next!=NULL)
{
hapus = hapus->next;
}
d = hapus->data;
hapus->prev->next = NULL;
delete hapus;
}
else
{
d = head->data;
head = NULL;
}
}
cout<next;
delete hapus;
}
head = NULL;
}
Langganan:
Posting Komentar (Atom)
Posting Komentar