Pages

Tuesday, February 25, 2020

Double & Ciruclar Linked List

Stefan Ferdinand / 2301864921
Rangkuman 
GSLC 25 Februari 2020

1. Circular Linked List
    
Setelah minggu 1 mempelajari Singly Linked List, kita bisa menyimpulkan bahwa Linked List itu merupakan suatu Data Structure yang memanfaatkan Pointer, untuk menghubungkan data yang satu dengan data yang lainnya. 

Selain Singly Linked List, ada juga bentuk Linked List yang lain, salah satunya adalah, Circular Linked List. Apa bedanya Circular Linked List dengan Singly Linked List? Nah, jika kita telusuri, Node terakhir atau Tail pada Singly Linked List, selalu menunjuk pada NULL, karena Node itu merupakan Node terakhir. Tetapi, dalam Circular Linked List, kita dapat lihat bahwa Node terakhir menunjuk pada Node pertama atau kita sebut Head.
    
Dengan ini terbentuklah sebuah gambaran circular yang terjadi pada Circular Linked List.

Hasil gambar untuk circular Linked List


Mengapa ada variasi Circular Linked List, apa saja keuntungan dan kekurangannya dibandingkan Singly Linked List.
  1. Jika menggunakan Circular Linked List, kita bisa melakukan Traversal secara lebih efisien dan lebih cepat.
  2. Ada beberapa problematika yang secara nature harus menggunaka Circular Linked List, seperti permainan Monopoly.

2. Doubly Linked List

Selain Circular Linked List, kita juga ada variasi lain dari Linked List, namanya Doubly Linked List.
Dalam intinya Circular, Doubly, dan Singly masing-masing berbeda dalam hal Pointernya saja. Jika dalam Singly Linked List kita hanya menunjuk pada Node selanjutnya, Doubly Linked List menunjuk pada Node selanjutnya dan juga sebelumnya.



Hasil gambar untuk singly and doubly linked list

Kita bisa lihat Semua Node pada Doubly Linked List, sekarang mempunyai penunjuk / pointer ekstra untuk Node sebelumnya.

Apa sih bedanya Singly Linked List dengan Doubly Linked List:

  1. Singly Linked List hanya dapat melakukan Traversal melalui satu arah, yaitu dengan mengakses Node selanjutnya, sedangkan Doubly Linked List dapat melakukan Traversal melalui dua arah, yaitu dengan mengakses Node selanjutnya ataupun Node sebelumnya. 
  2. Karena Doubly Linked List dapat mengakses Node selnajutnya dan juga sebelumnya, maka ada beberapa operasi yang dapat dilakukan lebih efisien menggunakan Doubly Linked List.
  3. Doubly Linked List menggunakan lebih banyak memori, karena ia menggunakan 2 pointer ketimbang Singly Linked List yang hanya menggunakan 1 pointer.


3. Circular Doubly Linked List

Circular Doubly Linked List adalah Linked List yang merupakan gabungan dari Doubly Linked List dan juga Circular Linked List. 



Hasil gambar untuk circular doubly linked list
Seperti yang dapat kita lihat pada gambar diatas, semua Node memiliki 2 pointer berupa Next dan Prev yang merupakan ciri-ciri Doubly Linked List, dimana pointer Next menunjuk pada Node selanjutnya dan pointer Prev menunjuk pada Node sebelumnya.

Disini kita juga bisa lihat, Node terakhir memiliki pointer Next yang menunjuk ke Start / Head, dan Node pertama memiliki pointer Prev yang menunjuk ke Node terakhir (Tail).

Kita bisa simpulkan Circular Doubly Linked List, merupakan suatu Hybrid dari Circular Linked List dengan Doubly Linked List, jadi bentuk ini mempunyai kelebihan Traversal yang mudah dan efisien, juga bentuk ini dapat mengakses Node terakhir melalui Node Pertama.





No comments:

Post a Comment