Sabtu, 08 Maret 2014

LINKED LIST IMPLEMENTATION I



Linked List atau kadang-kadang disebut dengan Senarai berantai dalam ilmu komputer merupakan sebuah struktur datayang digunakan untuk menyimpan sejumlah objek data biasanya secara terurut sehingga memungkinkan penambahan, pengurangan, dan pencarian atas elemendata yang tersimpan dalam senarai dilakukan secara lebih efektif.

Linked list di bagi menjadi 3 yaitu :
1. Single Linked List
2. Double Linked list
3. Circular Linked List

a. Single Linked List 

Adalah sebuah LL yang menggunakan sebuah variabel pointer saja untuk menyimpan banyak data dengan metode LL, suatu daftar isi yang saling berhubungan.
Contoh gambar single LL :


b. Double Linked List

Dalam double LL ( Linked List berpointer ganda ) dapat mengatasi kelemahan-kelemahan single LL tersebut.
Contoh gambar double LL:



c. Circular Linked List
Adalah double / single LL yang simpul terakhirnya menunjuk ke simpul awal, dan simpul awalnya menunjuk ke simpul akhir, atau dapat disebut LL yang dibuat seakan-akan merupakan sebuah lingkaran dengan titik awal dan titik akhir saling bersebelahan jika LL tersebut masih kosong,
Contoh Gambar Circular LL :


d. Push depan dan Push belakang
Di bagian ini biasa nya kita akan memakai 3 variable yaitu head, curr(current), dan tail dalam penggunaan LL biasanya dibagi menjadi 2 yaitu :
1. Push depan yaitu penambahan data yang dilakukan dibagian depan
2. Push belakang yaitu penambahan data yang dilakukan dibagian belakang

berikut contoh koding dari push depan dan push belakang :

*Push depan 

head=tail=curr;
if(head==NULL)
{
      head=tail=curr;
      tail => next = NULL
}
else
{
      curr => next = head;
      head = curr;
}


*Push belakang

head=tail=curr;
if(tail==NULL)
{
      head=tail=curr;
      tail => next = NULL
}
else
{
      tail => next = curr;
      tail = curr;
      tail => next = NULL;
}

e. POP(hapus)

POP(hapus) adalah cara untuk menghapus data dalam menggunakan LL, Pop terbagi menjadi 2 yaitu :
1.POP Depan yaitu menghapus data di bagian awal
2.POP Belakang yaitu menghapus data di bagian akhir

berikut contoh koding dari POP depan dan POP belakang :

*POP depan

void hapusDepan (){
TNode *hapus,*bantu;
if (isEmpty()==0){
int d;
hapus = head;
d = head->data;
if(head->next != head){
bantu = head;
while(bantu->next!=head){
bantu=bantu->next;
}
head = head->next;
delete hapus;
bantu->next = head;
}else{
head=NULL;
}
printf(“%d terhapus\n“,d);
} else printf(”Masih kosong\n“);
}



*POP belakang

void hapusBelakang(){
TNode *hapus,*bantu;
if (isEmpty()==0){
int d;
hapus = head;
if(head->next == head){
head = NULL;
}else{
bantu = head;
while(bantu->next->next != head){
bantu = bantu->next;
}
hapus = bantu->next;
d = bantu->data;
bantu->next = head;
delete hapus;
}
printf(“%d terhapus\n“,d);
} else printf(”Masih kosong\n“);
}




Nama  : Setiawan Faisal.K
Kelas : 02PFT
NIm   : 1701307501


Tidak ada komentar:

Posting Komentar