Linked list adalah struktur data yang terdiri dari urutan record data dimana setiap record memiliki field yang menyimpan alamat/referensi dari record selanjutnya (dalam urutan).
Macam- Macam Linked List yang akan dibahas kali ini:
1.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.
Ilustrasinya :
contoh codingannya :
struct Mahasiswa{
char nama[25];
int usia;
struct Mahasiswa *next;
}*head,*tail;
2. Circular Single Linked List
Merupakan suatu
linked list dimana tail(node terakhir) menunjuk ke head (node pertama). Jadi,
tidak ada pointer yang menunjuk ke NULL. Ilustrasinya:
3. Circular double Linked List
Hampir sama dengan Circular Single Linked list,
akan tetapi ada 2 pointer di setiap nodes. Ilustrasinya:
4. Double Linked List
Merupakan suatu
linked list yang memiliki dua variabel pointer yang menunjuk ke node
selanjutnya dan pointer yang menunjuk ke node sebelumnya. Setiap head dan tail
juga menunjuk ke NULL. Ilustrasinya:
struct Tnode {
int
value;
struct Tnode *next;
struct Tnode *prev;
};
struct
Tnode *head = 0;
struct Tnode *tail = 0;
Jika kita ingin membuang node dalam double linked list maka kita harus memperhatikan 4 hal:
1. Node yang ingin dibuang hanya 1 di linked list
free(head);
head = NULL;
tail = NULL;2. Node yang dibuang adalah kepala (head)
head =
head->next;
free(head->prev);
head->prev = NULL;
tail = tail->prev;
free(tail->next);
tail->next = NULL;
struct Tnode *curr
= head;
while ( curr->next->value != x
) curr = curr->next;
struct Tnode *a = curr;
struct Tnode *del = curr->next;
struct Tnode *b = curr->next->next;
a->next = b;
b->prev = a;
free(del);




Tidak ada komentar:
Posting Komentar