Linked list merupakan sekumpulan node / data yang tersusun secara sekuensial, saling menyambung dan dinamis. Linked list terbagi menjadi 3, single linked list, double linked list, dan circular linked list. Kali ini saya akan membahas tentang single linked list. Single linked list adalah linked list yang hanya mempunyai satu arah penunjuk, yaitu dari head ke tail. Kita tidak bisa menunjuk balik ke node sebelumnya jika kita sudah melewati node tersebut. Dalam linked list biasanya hanya ada 1 pointer penghubung yaitu next.
Misalnya ada seorang pelamar kerja yang ingin menemui bos dari sebuah perusahaan. Saat datang ke gedung perusahaan tersebut, dia akan menemui resepsionis, lalu diarahkan ke sekretaris bos, dari sekretaris bos di cek apakah sudah ada janjinya, dan jika sudah baru bisa bertemu bos. Tapi dia tidak mungkin mencari sang resepsionis dan memulai pencariannya dari bertemu dengan bos perusahaan.
Contoh kodingannya adalah sebagai berikut :
struct node
{
int data;
node *next;
}*head = NULL, *tail = NULL;
//PushHead
void pushHead( int data)
{
node *temp=(node*)malloc(sizeof(node));
temp->next=NULL;
temp->data=data;
if(!head)
{
head==null
head=tail=temp;
}
else
{
temp->next=head;
head=temp;
}
}
//PushTail
void pushTail(int data)
{
node *temp=(node *)malloc(sizeof(node));
temp->next=NULL;
temp->data=data;
if(!head){
head=tail=temp;
}
else
{
(tail)->next = temp;
tail=temp;
}
}
//pushMid
void pushMid( int data){
node *temp=(node*)malloc(sizeof(node));
node *curr=head;
temp->next=NULL;
temp->data=data;
if(!head)
{
*head=*tail=temp;
}
else
{
while (curr>next!=NULL) curr=curr>next;
temp->next=curr->next;
curr->next=temp;
if(curr==tail) tail=curr->next;
}
}
Demikian adalah contoh untuk insert pada linked list.
Tidak ada komentar:
Posting Komentar