Rangkuman
1. Linked List
Linked List ada 4 jenis :1. Single Linked List
2. Double Linked List
3. Circular Single Linked List
4. Circular Double Linked List
1. Single Linked List
adalah sekumpulan node yang terhubung melalui pointer. Single linked list hanya memiliki pointer yang menunjuk ke node selanjutnya tapi tidak ad pointer yang menunjuk ke node sebelumnya
2. Double Linked List
adalah sekumpulan node yang terhubung melalui pointer tetapi terdapat 2 arah yaitu 1 pointer menunjuk ke node selanjutnya dan satu lagi menunjuk ke node sebelumnya. Jadi kita bisa mengakses kembali node yang sebelum node sekarang.
3. Circular Single Linked List
adalah sekumpulan node yang terhubung melalui pointer tetapi pointer node terakhir menunjuk ke node pertama.
4. Circular Double Linked List
adalah sekumpulan node yang terhubung melalui pointer tetapi pointer node terakhir menunjuk ke node pertama dan node pertama juga bisa ke node terakhir.
Beda Linked List dan Array adalah:
- alamat memori Array berurutan, sedangkan Linked List tidak
- Linked List dinamis, bisa berapapun datanya, sedangkan Array statis , hanya bisa diisi data sesuai dengan ukuran array yang sudah diinisialisasi sebelumnya
Insert dalam Linked list ada 3 macam :
1. Push Head ( memasukkan data di depan / head ) FILO
2. Push Tail ( memasukkan data di belakang / tail ) FIFO
3. Push Mid ( memasukkan data di tengah-tengah dengan kondisi tertentu )
Stack & Queue
Dalam memasukkan data baru pada linked list terdapat 2 cara :
1. Stack
yaitu data yang terakhir kita masukkin, itu yang bakal jadi yang pertama(LIFO Last In First Out)
atau biasa di linked list di sebut PushHead
2.Queue
yaitu data yang terakhir kita masukkin, itu yang bakal jadi yang terakhir juga (FIFO First In First Out) atau biasa di linked list di sebut PushTail
Untuk detail yang lebih jelas bisa diklik aja link berikut :
https://www.geeksforgeeks.org/data-structures/linked-list/singly-linked-list/
1. Stack
yaitu data yang terakhir kita masukkin, itu yang bakal jadi yang pertama(LIFO Last In First Out)
atau biasa di linked list di sebut PushHead
2.Queue
yaitu data yang terakhir kita masukkin, itu yang bakal jadi yang terakhir juga (FIFO First In First Out) atau biasa di linked list di sebut PushTail
Untuk detail yang lebih jelas bisa diklik aja link berikut :
https://www.geeksforgeeks.org/data-structures/linked-list/singly-linked-list/
Hash table
Hash table adalah cara dalam memproses data biasanya dilakukan dengan mengenerate key terlebih dahulu lalu key tersebut dijadikan sebagai index yang nanti data tersebut akan dimasukkan ke array dengan index sesuai yang kia dapat tadi.Tapi karena ada kemungkinan kalo misalnya setelah kita generate index, kita mendapat kan index yang sudah pernah kita pakai sebelumnya, maka akan terjadi tubrukan data, sehingga jika kita tetap masukkan data baru ke index tersebut, data sebelumnya yang ada pada index yang sama akan teroverwrite, sehingga akan hilang.
Jadi untuk mengatasi hal tersebut terjadi, ada namanya linear probing dan chaining :
1. Linear probing
Cara ini dilakukan pada saat menemukan index yang sama, kita mencari index setelahnya yang masih belum terpakai(kosong), dengan looping, kita tambah-tambah index nya dengan 1 sambil mengecek apakah isi dari array pada index tersebut sudah terisi apa kosong, jika kosong maka masukkan data ke index tersebut, kalao udah terisi maka lanjut looping dan tambah-tambah 1 lagi hingga menemukan yang kosong.
2.Chaining
Cara ini dilakukan pada saat menemukan index yang sama setelah itu menjadikan setiap array dalam hash table menjadi dynamic array, sehingga data yang pertama masuk menjadi headnya setelah itu jika ada data yang masuk lagi akan menjadi nextnya, dan seterusnya tanpa ada batas
Binary Tree

Binary Tree adalah sebuah tipe struktur data yang bentuknya mrip pohon, berbeda dengan linked list mnggunakan head sebagai acuan, binary tree ini menggunakan root sebagai acuannya, dan ada left dan right, biasa nya left adalah data dengan value yang lebih kecil dari rootnya, sedangkan yang right memiliki value yang lebih besar dari rootnya, sehingga nanti ini akan sangat membantu dalam pencarian data, dan sorting data.