Apa itu Push dan Pop?
Pada linked list, terdapat istilah push, dan pop, dimana push berarti insert data baru pada linked list tersebut, dimana kita bisa push dari depan(dimana data yang kita masukkan berada di paling depan linked list kita dan data yang kita masukkan tersebut menjadi head), belakang (dimana data yang kita masukkan akan berada di paling belakang linked list kita dan data yang kita masukkan tersebut menjadi tail) atau dari tengah( data yang kita masukkan bukan berada di head maupun tail, melainkan berada di tengah-tengah linked list). Sedangkan pop berarti mendelete data, data dari depan, tengah dan juga belakang. Pada linked list, head berarti yang paling depan pada linked list tersebut, sedangkan tail berarti data yang terakhir.Untuk mendelete/pop, hal pertama kali yang harus kita selamatkan adalah menyelamatkan head dan juga tail nya, selain itu juga pertama kali kita harus mencari apa yang ingin kita hapus, menghapus data tersebut dan juga menghubungkan data-data yang masih ada.Single Linked List
Pada single linked list, hanya terdapat satu panah(kita bisa akses dari head ke tail, tapi tidak bisa dari tail ke head). Untuk melakukan insert maka yang pertama kali harus kita lakukan adalah memesan tempat terlebih dahulu.Pada C, bisa menggunakan fungsi malloc yang diinclude dari library #include <stdlib.h>.
Single Linked hanya memiliki satu variabel pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya. Biasanya field pada tail menunjuk ke NULL. Contoh :

Berikut adalah beberapa contoh condingan dalam linked list
Contoh Codingan deklarasi single linked list :
struct tnode{
int nim;
char nama[10];
struct tnode *next;
}*head,*tail,*current;
Contoh Codingan Fungsi Push Head / Depan :
Contoh Codingan Fungsi Push Head / Depan :
void pushHead(int nim,char nama[]){
struct tnode *current = (struct tnode *) malloc(sizeof(struct tnode));
current->nim = nim;
strcpy(current->nama,nama);
if(head==NULL){
head = tail = current;
}else{
current->next=head;
head = current;
}
}
Contoh Codingan Fungsi Push Mid/Tengah :
void pushMid(int pos,int nim,char nama[]){
struct tnode *current = (struct tnode *) malloc(sizeof(struct tnode));
current->nim = nim;
strcpy(current->nama,nama);
tnode *temp=head;
if(head==NULL){
head=tail=current;
}else{
int i = 1;
while(i<pos-1){
temp=temp->next;
i++;
}
if(temp->next==NULL){
printf("Error Input\n");
}else{
current->next = temp->next;
temp->next = current;
}
}
}
Contoh Codingan Fungsi Push Tail / Belakang :
void pushTail(int nim,char nama[]){
struct tnode *current = (struct tnode *) malloc(sizeof(struct tnode));
current->nim = nim;
strcpy(current->nama,nama);
if(head == NULL){
head=tail=current;
}else{
tail->next = current;
tail = current;
tail->next = NULL;
}
}
Contoh Codingan Fungsi Pop Head / Hapus Depan :
void popHead(){
struct tnode *temp;
if (head==tail){
free(current);
head=tail=current=NULL;
}else{
temp=head;
head = temp->next;
free(temp);
}
}
Sekian rangkuman single linked list dari saya, mohon maaf jika ada kesalahan atau kurang lengkap, Terima Kasih.
Komentar
Posting Komentar