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