Wednesday, March 11, 2020

Insertion, Deletion at Linked List & Queue, Stack

Insertion & Deletion
Insertion
Insertion pada linked list memiliki arti memasukan atau menambah data ke dalam linked list. Biasanya disebut dengan push.
Push atau Insertion sendiri dibagi menjadi 3 yakni:
1. Push Depan
linkedlist_insert_at_start
Menambahkan data dari depan / head.
2. Push Belakang
linkedlist_insert_last
Menambahkan data dari belakang / tail.
3. Push
linkedlist_insert_middle
Menambahkan data pada setelah node yang diberikan.

Deletion
Deletion pada linked list memiliki arti menghapus data dari linked list. Biasanya disebut dengan pop.
Pop atau Deletion juga dibagi menjadi 3 yakni:
1. Pop Depan

Menghapus data terdepan (head).
2. Pop Belakang
Image result for deletion of last node in linked list

Menghapus data terbelakang (tail).
3. Pop
linkedlist_deletion
Menghapus data sesuai dengan yang diinginkan.

Stack & Queue at Data Structure
Stack
Stack adalah tumpukan dimana ia memiliki sistem Last In First Out (LIFO). Contohnya seperti tumpukan buku, dimana jika kita memiliki tumpukan buku maka buku yang teratas akan diambil terlebih dahulu sedangkan yang pertama kali di letakan adalah buku yang paling bawah.
stack
Queue
Queue adalah antrian dimana ia memiliki sistem First In First Out (FIFO). Contohnya seperti antrian tiket kereta, dimana orang yang mengantri duluan akan mendapatkan tiketnya duluan.


Referensi:
https://www.geeksforgeeks.org/linked-list-set-2-inserting-a-node/
https://www.geeksforgeeks.org/linked-list-set-3-deleting-node/
https://scanftree.com/Data_Structure/deletion-in-last
https://scanftree.com/Data_Structure/deletion-in-front
https://visualgo.net/en/list?slide=5
https://visualgo.net/en/list?slide=4
https://www.geeksforgeeks.org/stack-data-structure/
https://www.geeksforgeeks.org/queue-data-structure/

Monday, March 2, 2020

About Linked List


Circular Singly Linked List / Doubly Linked List / Circular Doubly Linked List

Circular Singly Linked List
Circular Singly Linked List adalah singly linked list yang pada node terakhirnya mempunyai sebuah pointer yang menunjuk ke node pertama sehingga jika digambarkan akan membentuk sebuah siklus.
Circular Singly Linked List
Kelebihan Circular Singly Linked List yakni:
a. Semua node bisa dijadikan Starting Point atau tempat awal mulai.
b. Berguna untuk implementasi antrian (Queue).
c. Karena Circular Singly Linked List berbentuk siklus maka ia sangat berguna untuk suatu sistem yang perlu untuk berulang ulang melihat list.


Doubly Linked List
Doubly Linked List adalah linked list yang pada setiap nodenya memiliki sebuah pointer tambahan yang menunjuk ke node sebelumnya (previous node).
dll
Doubly Linked List
Kelebihan Doubly Linked List dibandingkan dengan Singly Linked List yakni:
a. Kita dapat melintasi (transverse) dari depan ataupun belakang linked list tersebut.
b. Operasi Delete disini lebih efisien jika pointer ke node yang akan di delete diberikan.
c. Kita dapat melakukan insert node baru sebelum node diberikan.

Kekurangan Doubly Linked List dibandingkan dengan Singly Linked List yakni:
a. Membutuhkan extra space atau memori lebih karena adanya tambahan pointer yang menunjuk ke node sebelumnya.
b. Semua operasi membutuhkan pointer tambahan agar seimbang.


Circular Doubly Linked List
Circular Doubly Linked List adalah doubly linked list yang pada node pertama dan terakhirnya mempunyai pointer tambahan. Pointer tambahan pada node pertama akan menunjuk ke node terakhir, sedangkan pointer tambahan pada node terakhir akan menunjuk ke node pertama.
Circular doubly linked list
Circular Doubly Linked List
Kelebihan Circular Doubly Linked List sebenarnya sama seperti Doubly Linked List tetapi karena adanya pointer tambahan pada node pertama dan node terakhir maka Circular Doubly Linked List dapat melakukan loncatan dari node terakhir ke node pertama ataupun dari node pertama ke node terakhir.
Kekurangannya pun juga sama dengan Doubly Linked List.


References:
https://binusmaya.binus.ac.id/newStudent/#/class/resources.COMP6048/010544/1920/CL/11725
https://youtu.be/YHFGoNkWmCI
https://www.youtube.com/watch?v=aNGhflW-q1M&list=PLWPirh4EWFpG49yASGCmvOwXwVvgnm6Jt&index=63 
https://www.youtube.com/watch?v=QSbzhaqdgcM&list=PLWPirh4EWFpG49yASGCmvOwXwVvgnm6Jt&index=64
https://repository.unikom.ac.id/35731/1/Bab%20VII%20-%20Circular%20Linked%20List.pdf
https://www.geeksforgeeks.org/circular-linked-list/
https://www.geeksforgeeks.org/doubly-linked-list/
https://www.geeksforgeeks.org/doubly-circular-linked-list-set-1-introduction-and-insertion/
https://www.geeksforgeeks.org/doubly-circular-linked-list-set-2-deletion/
https://www.javatpoint.com/circular-singly-linked-list
https://www.tutorialspoint.com/data_structures_algorithms/linked_list_algorithms.htm
https://www.google.com/amp/s/iq.opengenus.org/doubly-linked-list/amp/
https://visualgo.net/en/list
http://musthopakemalibrahim.blogspot.com/2011/01/double-linked-list.html