0
pa sih itu Linked List?
sederhananya adalah sebuah struktur data yang sangat dinamis di mana elemen dapat ditambahkan atau dihapus dari mana saja sesuka hati kita, Juga, setiap elemennya disebut node atau koleksi linear dari data dimana setiap node menunjuk pada node lain melalui pointer.

Pada semester sebelumnya, kita sudah belajar tentang pointer bukan?

Tentunya teman-teman harus masih inget dong.

Nah, Pada linked list terdapat beberapa jenis tuh . kali ini spesial banget aku bakalan bahas tiga hal dibawah ini yaitu :

1.Circular Single Linked List
2.Doubly Linked List
3.Circular Doubly Linked List
mari kita bahas satu persatu! 
1. Circular single linked list
Q : apa sih itu circular single linked list? 
A: Dari kata circular sebenarnya bisa langsung kita tahu bhwa linked list yang satu ini membentuk sebuah siklus nih. Artinya, simpul di awal dan akhirnya bersebelahan atau ismpul terakhir berisi pointer ke simpul pertama. Di linked list yang satu ini juga Tidak ada penyimpanan nilai NULL dalam list.
sumber :https://www.javatpoint.com/circular-singly-linked-list
Dalam linked list ini kan sudah disebutkan tuh bisa ngapain aja, bisa nambahin atau menghapus. Nah aku bakalan sebutin apa aja yang bisa dilakuin sama linked list satu ini:
  1.  Menambahkan diawal
    yaitu Menambahkan simpul ke circular singly linked list yang ditautkan sendiri di awal.
  2. Menambahkan diakhir
    Menambahkan node ke circular singly linked listyang ditaukan di akhir
  3. Penghapusan di awal.
    Menghapus simpul dari circular singly linked list yang ditautkan di awal. 
  4.  Penghapusan di bagian akhir
    Menghapus simpul dari daftar tertaut tunggal melingkar di bagian akhir.
  5.  Pencarian
    Membandingkan setiap elemen dari simpul dengan item yang diberikan dan kembalikan lokasi di mana item tersebut ada dalam daftar jika tidak mengembalikan null.
  6. Traversing
    Mengunjungi setiap elemen daftar setidaknya satu kali untuk melakukan beberapa operasi tertentu.
2.Doubly Linked List
Q: Apa itu double linked list? apa bedanya sama double linked list?
A : Iya bener banget! itu sama aja kok. Cuma beda penyebutan aja tuh hehehe. jadi , doubly/double linked list itu struktur data yang mempunyai dua tautan , satu yang merujuk kepada data setelahnya , satu lagi yang merujuk pada sebelumnya. 
sumber : https://javatpoint.com/doubly-linked-list


  1.  Penyisipan di awal
    Menambahkan simpul ke dalam Linked List di awal.
  2.  Penyisipan di akhir
    Menambahkan simpul ke Linked List  ke akhir. 
  3. Penyisipan setelah simpul yang ditentukan
    Menambahkan simpul ke dalam daftar tertaut setelah simpul yang ditentukan.
  4.  Penghapusan di awal.
     Menghapus simpul dari awal daftar
  5. Penghapusan di bagian akhir
    Menghapus simpul dari akhir daftar.
  6.  Penghapusan dibagian terten
    Menghapus node yang hadir tepat setelah node yang berisi data yang diberikan.
  7.  Pencarian/Searching
    Membandingkan setiap data node dengan item yang akan dicari dan mengembalikan lokasi item dalam daftar jika item yang ditemukan lain kembali nol.
  8.  Traversing
    Mengunjungi setiap node daftar setidaknya sekali untuk melakukan beberapa operasi tertentu seperti pencarian, pengurutan, tampilan, dll.

    Stack and Queue
  9. Q :apa sih itu stack ?  
    A: Sederhananya nih, stack adalah tumpukan. kalian pasti tau dong tumpukan piring atau tumpukan buku. Nah, jadi stack itu ya gitu. data yang bentuknya ditumpuk gitu. jadi data yang terakhir masuk, akan menjadi data yang pertama keluar. LIFO : Last in, Frist Out.
    Q: trus kalau Queue apa dong?
    A: nah, kalau si queue(bacanya Q ya buka kueue :) ) itu antrian. Semua pada tau dong apa itu antrian? ya ngantri aja. Jadi disini data yang pertama masuk juga menjadi data yang pertama keluar. FIFO : First In, First Out

    Pada Stack, menggunakan push Head dan PopHead
    Pada Queue , digunakan PushHead dan PopTail
Q: Apa itu Hash Table?
A: sebuah Table(array) dimana kita menyimpan string. index dari table tersebut adalah tempat terisinya dan berisi value dari string tersebut.

penempatan value dari string yang akan ditempatkan di sebuah index berdasarkan cara berikut:
misalkan:
 h item = item % (size of table)   
mari kita asumsikan ukuran dari table = 11, maka 

54 % 11 = 10   26 % 11 = 4    93 % 11 = 5  
17 % 11 = 6    77 % 11 = 0    31 % 11 = 9    

maka tempat yang akan diisi akan menjadi seperti ini :

DAA Hash Tables



Kenapa kita menggunakan Hash Table?
  1. jika U (Universe of keys) sangat  besar , meletakkan sebuat table T dari size [U] bisa saja tidak mungkin.
  2. Penempatan k dari keys mungkin saja relatif kecil untuk U sehingga ruang untuk menggalokasikan memori untuk T akan terbuang.
Lalu, bagaimana jika dua buat string mempunyai value yang sama sehingga index yang perlu diletakkan juga sama?
itu disebut collisions/tabrakan .
Ada dua cara untuk menangani tabrakan tersebut:

Probing Linier
Cari slot kosong berikutnya dan letakkan talinya di sana.

Chaining
Masukkan string ke dalam slot sebagai daftar rantai (linked list).
Binary Search Tree

Binary search tree disebut juga kelas pohon biner, di mana node diatur dalam urutan tertentu.
nilai semua node di sub-pohon kiri kurang dari nilai root dan nilai semua node di sub-pohon kanan lebih besar atau sama dengan nilai root.
Aturan ini akan diterapkan secara rekursif ke semua sub-pohon kiri dan kanan root.
Binary Search Tree


ada beberapa operation yang bisa dilakukan di binary search tree , yaitu :
1 Mencari di BST
Mencari lokasi beberapa elemen tertentu dalam BST.

2.Penyisipan dalam BST 
Menambahkan elemen baru ke BST di lokasi yang sesuai sehingga properti BST tidak melanggar.
3.Penghapusan dalam BST Menghapus beberapa node tertentu dari pohon pencarian biner. Namun, bisa ada berbagai kasus dalam penghapusan tergantung pada jumlah anak, yang dimiliki simpul.


sekian untuk materi kali ini!
sampai jumpa minggu depan~~


source: https://www.javatpoint.com/

Posting Komentar

Silahkan berkomentar dengan baik ~

 
Top
onmousedown="return false" oncontextmenu="return false" onselectstart="return false" >