Linked List
Circular Linked List
Adalah sebuah Linked List dimana setiap Node-nya tersambung dan pada node tail akan menunjuk ke node head sehingga pada Circular Linked List tidak terdapat value NULL pada Linked List. node -node yang terhubung pada Circular Linked List akan terlihat seperti melingkar.
Double Linked List
Adalah sebuah Linked List dimana setiap Node akan menunjuk ke 2 Node yaitu Node setelah-nya dan Node sebelum-nya. Pada Node Head akan menunjuk ke node sebelumnya yaitu NULL dan node selanjutnya ( jika Head==Tail maka akan menunjuk ke NULL ), sedangkan pada Node Tail akan menunjuk pada Node sebelumnya ( jika Head==Tail maka akan menunjuk ke NULL ) dan node selanjutnya yaitu NULL.
Circular Double Linked List
Adalah sebuah campuran Circular Linked List dan Double Linked List sehingga pada Node Head akan menunjuk ke arah Node selanjutnya dan ke Node sebelumnya yaitu Node Tail, sedangkan pada Node Tail akan menunjuk ke Node sebelumnya dan ke Node selanjutnya yaitu Node Head.
Cara Insert
Insert Tail
struct tnode *node = ( struct tnode* ) malloc ( sizeof ( struct tnode ));
node -> value = x;
node -> next = NULL;
node -> prev = tail;
node -> next = node;
tail = node;
Insert di antara Head dan Tail
struct tnode *a = ??;
struct tnode *b = ??;
struct tnode *node = ( struct tnode* ) malloc ( sizeof ( struct tnode ));
node -> value = x;
node -> next = b;
node -> prev = a;
a -> next = node;
b -> prev = node;
Cara Delete
Delete satu-satunya node pada Linked List
free ( head );
head = NULL;
tail = NULL;
Delete Head
head = prev -> next;
free ( head -> prev );
head -> prev = NULL;
Delete Tail
tail = tail -> prev;
free ( tail -> next );
tail -> next = NULL;
Delete Node yang diinginkan
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 );
Nama : Ceavin Nuridin
NIM : 2301887452



Comments
Post a Comment