Pertemuan 2 - Linked List Implementation 1 - 2101657966 - Vincent Wuliango

Linked List 
Linked List merupakan koleksi linear dari data, yang disebut sebagai nodes,setiap node akan menunjuk pada node lain melalui sebuah pointer. Elemen data yang dihubungkan dengan link pada Linked List disebut node.

Dalam linked list terdapat istilah head dan tail :
-Head adalah elemen yang berada di posisi pertama dalam linked list.
-Tail adalah elemen yang berada di posisi terakhir dalam linked list.

Single Linked List 
Single Linked List merupakan suatu linked list yang hanya memiliki satu variabel pointer saja. Dimana pointer tersebut menunjuk ke node selanjutnya. Biasanya field pada tail menunjuk ke NULL.


Double Linked List
Double Linked List adalah data daftar tertaut struktur dengan dua link, satu yang berisi referensi ke data berikutnya dan satu yang berisi referensi ke data sebelumnya.



Operasi" di dalam linked list :

1. Single Linked List Insert 
Untuk menyisipkan nilai baru, pertama kita harus mengalokasikan node baru secara dinamis dan memberikan nilai padanya dan kemudian menghubungkannya dengan linked list yang ada.

Example code:
struct tnode *node =
(struct tnode*) malloc(sizeof(struct tnode));
node->value = x;
node->next  = head;
head = node;

2. Single Linked List Delete
Untuk menghapus sebuah nilai, pertama kita harus mencari lokasi node yang menyimpan nilai yang ingin kita hapus, keluarkan, dan hubungkan sisa linked list.

Example code:
if ( head->value == x ) {
            head = head->next;
            free(curr);
}

3. Double Linked List Insert
Mengalokasikan  simpul baru dan tetapkan nilainya ke sana, lalu kita hubungkan node dengan linked list yang ada.

Example code:
struct tnode *node =
(struct tnode*) malloc(sizeof(struct tnode));
node->value = x;
node->next  = NULL;
node->prev  = tail;
tail->next  = node;
tail = node;

4. Double Linked List Delete
Ada 4 kondisi:
-Node yang akan dihapus adalah satu-satunya simpul dalam linked list.
-Simpul yang akan dihapus adalah kepala.
-Simpul yang akan dihapus adalah ekor.
-Simpul yang akan dihapus bukan kepala atau ekor.

Circular Single Linked List 
Secara sirkuler, node terakhir berisi pointer ke node pertama. Kita bisa memiliki data daftar terkait dan juga data ganda yang saling terkait. Tidak ada penyimpanan nilai NULL dalam data.

Circular Double Linked List
Ini mirip dengan linked list melingkar tunggal, tapi total pointer di setiap node di sini adalah 2 (dua) pointer.

Komentar