Selasa, 25 Februari 2020

Linked List


Circular Single Linked List










  • Circular Single Linked List merupakan Single Linked List dimana tail node menunjuk (menggunakan pointer) pada head node.
  • Ini juga berarti tidak ada node yang menunjuk pada NULL dikarenakan tail node-nya menunjuk pada head node membentuk lingkaran.
  • Karena berbentuk circular maka linked list ini dapat dimulai dari mana saja karena bentuknya.

Doubly Linked List

  • Bernama lain two-way linked list.
  • Tidak seperti single linked list, doubly linked list setiap nodenya memiliki 2 pointer, yang satu menunjuk pada node sebelumnya (previous node) dan lainnya menunjuk pada node setelahnya (next node).
  • Dikarenakan head node adalah node pertama maka pointer yang seharusnya menujuk pada node sebelumnya menunjuk pada NULL. Begitu pula dengan tail node-nya, di mana pointer yang seharusnya menunjuk pada node setelahnya menunjuk pada NULL.

 Insertion pada Doubly Linked List

  • Sama seperti insertion pada Single Linked List, tetapi bedanya kali ini kita harus menghubungkan kembali bukan hanya dengan node setelahnya, tetapi juga dengan node sebelumnya karena ini adalah Doubly Linked List

Delete pada Doubly Linked List

  • Jika yang di-delete adalah node satu-satunya :
      free(head);
        head = NULL;
        tail = NULL;
  • Jika yang di-delete adalah head node :
        head = head ->next;
        free (head -> prev );
        head -> prev = NULL;
  • Jika yang di-delete adalah tail node :
        tail = tail ->prev;
        free (tail -> next );
        tail -> next = NULL;
  • Jika yang di-delete adalah bukan head node atau tail node :
        
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);

Circular Doubly Linked List

  • Dapat dilihat dari namanya ini merupakan Doubly Linked list yang circular.
  • Perbedaan dengan Doubly Linked List ialah tidak ada yang menunjuk pada NULL karena tail node menunjuk pada head node.
  • Sama seperti Circular Single Linked List, Circular Doubly Linked List dapat dimulai dari mana saja karena bentuknya yang circular.


Sumber :


Tidak ada komentar:

Posting Komentar