Rabu, 26 Februari 2020

DATA STRUCTURE

Linked List
atau dikenal juga dengan sebutan senarai berantai adalah struktur data yang terdiri dari urutan record data dimana setiap record memiliki field yang menyimpan alamat/referensi dari record selanjutnya.
Link List memiliki sekumpulan node/data yang tersusun secara sekuensial, saling menyambung dan dinamis. Sekumpulan node tersebut dihubungkan dengan pointer. Pada praktiknya sebuah struktrur data memiliki elemen yang digunakan untuk saling menyimpan rujukan antara satu dengan yang lainnya sehingga membentuk sebuah senarai abstrak, tiap-tiap elemen yang terdapat pada senarai abstark ini seringkali disebut sebagai node. karena mekanisme rujukan yang saling terkait inilah disebut sebagai senarai berantai (Linked List).

Keunggulan linked list yaitu dapat menggunakan memory sesuai kebutuhan dan tidak dapat overflow kecuali jika memory komputer habis. Beda halnya dengan jika kita mendeklarasikan sebuah array, pada array memory baik kita gunakan atau tidak sejumlah blok yang telah dipesan melalui deklarasi tersebut tidak dapat digunakan, dan jika data yang kita masukkan lebih besar dari jumlah data yang dideklarasikan akan terjadi overflow.

Linked List dibedakan menjadi 3:
1. Single Linked List
2. Double Linked List
3. Circular Linked List

I. Single Linked List
adalah sekumpulan dari node yang saling terhubung dengan node lain melalui sebuah pointer. Rangkaian single linked list tersebut diawali dengan sebuah head untuk menyimpan alamat awal dan di akhiri dengan node yang mengarah ke pointer null. Single Linked List hanya memiliki satu arah dan tidak memiliki dua arah atau bolak balik.

*pointer head menunjuk pada node berisi data 12 dan tail menunjuk pada node berisi data 37


Di dalam linked list terdapat properties yang umum yaitu: insert node dan delete node.
contoh codingannya:

struct Mhs{
      char name[20];
      int age;
      struct Mhs *next;
}*head,*tail;


II. Double Linked List
merupakan suatu linked list yang memiliki dua variabel pointer yaitu pointer yang menunjuk ke node selanjutnya dan pointer yang menunjuk ke node sebelumnya. Setiap head dan tailnya juga menunjuk ke null.







Berbeda halnya dengan Single Linked List, pada Double Linked List, struktur data atas tiap-tiap node memiliki rujukan pada node sebelum dan berikutnya. Sebagian algoritme membutuhkan taut ganda, contohnya sorting dan reverse traversing.
contoh codingannya:

struct Mhs{
      char name[20];
      int age;
      struct Mhs *next,*prev;
}*head,*tail;

III. Circular Linked List
merupakan suatu linked list dimana tail (node terakhir) menunjuk ke head (node pertama). Jadi tidak ada pointer yang menunjuk null. Ada 2 jenis Circular Linked List, yaitu:

  • Circular Single Linked List 


  • Circular Double Linked List


Pada dua jenis senarai sebelumnya, node terakhir dalam senarai tersebut merujuk pada null yang artinya akhir dari sebuah senarai, begitu pula null sebagai rujukan node sebelumnya pada node pertama bila senarai yang dimaksudkan adalah Double Linked List. Pada Circular Linked List, informasi rujukan pada node terakhir akan merujuk pada node pertama, dan rujukan pada node pertama akan merujuk pada node terakhir bila yang digunakan sebagai dasar implementasi adalah Double Linked List.


Reference:
1. http://t-edukasi.blogspot.com/2018/01/materi-dan-pengertian-linked-list-atau.html
2. http://www.nblognlife.com/2014/12/single-linked-list-pada-c.html
3. https://id.wikipedia.org/wiki/Senarai_berantai
4. https://medium.com/codelabs-unikom/struktur-data-single-linked-list-93bbd56b6ed1
5. http://jagocoding.com/tutorial/245/Tutorial_Single_Linked_List

Tidak ada komentar:

Posting Komentar

AVL Tree adalah balanced binary search tree dimana ia memiliki perbedaan pada jumlah node pada subtree kiri dan subtree kanannya palin...