Pertemuan 8

Pada pertemuan kali ini Kami belajar tentang Heap, Tries, Dan Hash Table

HEAP

Heap memiliki 3 Jenis:

-Min Heap : Heap yang rootnya memiliki anak terkecil dan jika anaknya ada yang lebih besar akan ditukar dengan root

Min-heap

-Max Heap : Heap yang rootnya memiliki anak terbesar dan jika ada anak yang lebih besar akan ditukar dengan root

400px-Min-max_heap

-Min-Max Heap : Heap yang rootnya selang seling antara Max heap dan Min heap

minmax

TRIES

Tries adalah prefix tree

aplikasi trie:

-auto complete text pada pencarian

-spell checker pada digital dictionary

Tries

Contoh TRIES yang mengantung huruf:

  1. ALGO
  2. API
  3. BOM
  4. BOS
  5. BOSAN
  6. BOR

HASHING

Hash Table adalah sebuah struktur data yang terdiri atas sebuah tabel dan fungsi yang bertujuan untuk memetakan nilai kunci yang unik untuk setiap record (baris) menjadi angka (hash) lokasi record tersebut dalam sebuah tabel.

Keunggulan dari struktur hash table ini adalah waktu aksesnya yang cukup cepat, jika record yang dicari langsung berada pada angka hash lokasi penyimpanannya. Akan tetapi pada kenyataannya sering sekali ditemukan hash table yang record-recordnya mempunyai angka hash yang sama (bertabrakan).

Hash Table

Hash yang menggunakan Tabel/Array

2000px-Hash_table_5_0_1_1_1_1_1_LL.svg

Linear Probing

String yang dimasukkan ke array selanjutnya

img989

Pertemuan 7 Data Structure

RED BLACK TREE

Red Black Tree adalah Balanced tree seperti AVL tetapi berbeda terdapat nodes yang berwarna berbeda.

  • Semua node mimiliki 2 warna, hitam atau merah
  • Semua External node selalu berwarna hitam
  • Semua new node berwarna merah
  • Root pasti hitam
  • Tidak boleh ada node Merah memiliki Anak atau parent Merah

2000px-Red-black_tree_example.svg

2-3 TREE

dalam bidang computer science, 2-3 Tree adalah salah satu tipe struktur data, dimana setiap node dengan anaknya, memiliki 2 children dan 1 elemen data (2 node) atau 3 children dan 2 elemen data (3 node). perlu diketahui, bahwa 2-3 Tree bukan Binary Tree.

Image52

Pertemuan 6, 11 Mei 2016

Pada pertemuan kali ini kami membahas Balanced Binary Tree dan kami juga didatangi oleh Dosen Tamu bernama Selvakumar Manickam, Senior Lecture of University Science of Malaysia . Balanced Binari Tree memiliki 2 macam antara lain AVL dan Red-Black Tree, namun pada pertemuan kali ini kami hanya membahas soal AVL.

AVL Tree adalah Binary Search Tree yang memiliki perbedaan tinggi/ level maksimal 1 antara subtree kiri dan subtree kanan. AVL Tree muncul untuk menyeimbangkan Binary Search Tree. Dengan AVL Tree, waktu pencarian dan bentuk tree dapat dipersingkat dan disederhanakan.
 Picture1
Merupakan AVL Tree
Bukan AVL Tree Karena Balance Factor 2 sedangkan Maksimal 1
Cara menentukan Height dan Balance Factor :

Height :
– Jika node (root) tidak memiliki subtree heightnya = 0
– Jika node adalah leaf, height =  1
– Jika internal node, maka height =  height tertinggi dari anak + 1

Balance Factor :
-selisih height antara anak kiri dan kanan, jika tidak memiliki anak, dianggap 0.

Single Rotation

Single rotasi (rotasi 1x) dilakukan apabila searah, left-left atau right-right
Gambaran Single Rotation :Picture3

Double Rotation

Double rotasi (rotasi 2x) dilakukan apabila searah, left-right atau right-left
Gambaran Double Rotation :

Picture1 (1)

Deletion

Operasi penghapusan node sama seperti pada Binary Search Tree, yaitu node yang dihapus digantikan oleh node terbesar pada subtree kiri atau node terkecil pada subtree kanan. Jika yang dihapus adalah leaf, maka langsung hapus saja. Namun jika node yang dihapus memiliki child maka childnya yang menggantikannya. Namun setelah operasi penghapusan dilakukan, cek kembali apakah tree sudah seimbang atau belum, jika belum maka harus diseimbangkan kembali. Cara menyeimbangkannya pun sama seperti insertion.

Picture4 Picture5 Picture1 (2) Picture2 (1)

Untuk Sesi kedua, Selvakumar Manickam melakukan Review yang dapat dilihat di :

Pertemuan 1

Pertemuan 4

Pertemuan 5