Thursday, March 6, 2014

Penjelasan Linked List

==========================================

Linked List

  • Dibagi menjadi tiga jenis yaitu :
    1. Single Linked list
    2. Double Linked list
    3. Multiple Linked list (Tree)
  • Contoh Single Linked list seperti berikut :

  • Dalam single linked list hanya terdapat satu arah panah, yakni arah penah dengan sebutan next.
  • Namun dalam Double linked list terdapat perbedaan, contohnya seperti berikut ini :

  • Dalam double linked list terdapat dua arah panah, yang disebut dengan nama next(yang ada di single linked list) dan previous.
  • Berikut contoh gambar dari multiple linked list :


Circle (Circular)

  • Contoh gambar dari linked list yang disebut circle :
 

  • Suatu Linked list akan disebut sebagai circle apabila data memori terakhirnya terhubung kembali lagi dengan data memori yang pertama (awal alokasi memori). Jadi arahnya bagaikan suatu lingkaran yang tidak ada batas akhirnya (NULL).

Push Depan dan Push Belakang

  • Linked list diterapkan dengan dua cara yakni Push depan dan Push belakang.
  • Di dalam linked list kalian akan mengenal tentang tiga elemen yaitu head, tail, dan curr(current).
  • Berikut contoh potongang codingan push depan dan push belakang :
struct mahasiswa
{
    int angka;
    struct mahasiswa *next;
}*head=NULL, *curr=NULL, *tail=NULL;

void clear()
{
    for(int c=0; c<25; c++)
        printf("\n");
}
void push_depan(int angka)
{
    curr = (struct mahasiswa*)malloc(sizeof(struct mahasiswa));
    curr->angka = angka;
    curr->next = NULL;

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

void push_belakang(int angka)
{
    curr = (struct mahasiswa*)malloc(sizeof(struct mahasiswa));
    curr->angka = angka;
    curr->next = NULL;

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

  • Contoh ilustrasi dalam bentuk gambar :

  • Push depan juga bisa diterapkan dalam codingan seperti berikut :
head = curr = tail = NULL;
if(head == NULL)
{
head = tail = curr;
tail->next = NULL;
}
else
{
curr->next = head;
head = curr;
}


  • Sedangkan Push belakang seperti berikut :
if(head == NULL)
{
head = tail = curr;
}
else
{
tail->next = curr;
tail = curr;
}
tail->next = NULL;

==========================================

Nama  : Johanes Arnold
NIM   : 1701302242



No comments:

Post a Comment