Single Linked List yang pointer nextnya menunjuk pada dirinya sendiri. Jika Single Linked List tersebut terdiri dari beberapa node, maka pointer next pada node terakhir akan menunjuk ke node terdepannya.
Ilustrasi Single Linked List Circular
- Setiap node pada linked list mempunyai field yang berisi pointer ke node
berikutnya, dan juga memiliki field yang berisi data.
- Pada akhir linked list, node terakhir akan menunjuk ke node terdepan
sehingga linked list tersebut berputar. Node terakhir akan menunjuk lagi
ke head.
- Setiap node pada linked list mempunyai field yang berisi pointer ke node
berikutnya, dan juga memiliki field yang berisi data.
- Pada akhir linked list, node terakhir akan menunjuk ke node terdepan
sehingga linked list tersebut berputar. Node terakhir akan menunjuk lagi
ke head.
2. Doubly Linked List
Doubly Linked List memiliki tiga yaitu, pointer prev, pointer next, dan data. Double linked list dibentuk dengan menyusun sejumlah elemen sehingga pointer next menunjuk ke elemen yang mengikutinya dan pointer prev menunjuk ke elemen yang mendahuluinya. Untuk menunjukkan head dari double linked list, maka pointer prev dari elemen pertama menunjuk NULL. Untuk menunjukkan tail dari double linked list tersebut, maka pointer next dari elemen terakhir menunjuk NULL. berikut penjelasan lebih lanjut dengan gambar :
berdasarkan kalimat bahasa C yaitu:
1. membuat prev, next, tail, dan head
struct
tnode {
int value;
struct tnode *next;
struct tnode *prev;
}*head,*tail ;
2. membuat insert
struct
tnode *node =
(struct tnode*) malloc(sizeof(struct tnode));
node->value = x;
node->next
= NULL;
node->prev
= tail;
tail->next
= node;
tail = node;
3. mendelete
- node
free(head);
head = NULL;
tail = NULL;
-head
head = head->next;
free(head->prev);
head->prev = NULL;
-tail
tail = tail->prev;
free(tail->next);
tail->next = NULL;
- delete di tengah
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);
Gambar mengenai penjelasan doubly linked list



No comments:
Post a Comment