Rangkuman Sebelum UAS
Nama : Vanessa Ratana Yoe

D
NIM : 2301869424
Kelas : CB01-CL
Dosen : Henry Chong (4460) & Ferdinand Ariandy Luwinda (4522)
AVL TREE
AVL Tree adalah salah satu jenis Binary Search Tree dimana antara subtree kiri dengan subtree kanan memiliki perbedaan tinggi / level maksimalnya 1. AVL Tree digunakan untuk menyeimbangkan Binary Search Tree sehingga memungkinkan untuk mempersingkat waktu pencarian.AINSERTION
Pada dasarnya insert di AVL sama dengan insert di BST, setelah node dimasukkan apabila tree belum seimbang maka akan diseimbangkan. Terdapat 4 kasus, yaitu :- node terdalam ada di subtree kiri dari anak kiri n (left-left)
- node terdalam ada di subtree kanan dari anak kanan n (right-right)
- node terdalam ada di subtree kanan dari anak kiri n (right-left)
- node terdalam ada di subtree kiri dari anak kanan n (left-right)
* n adalah node yang harus diseimbangkan
Proses penyeimbangan dapat dilakukan dengan Single Rotation dan Double Rotation.
SINGLE ROTATION
>> untuk kasus 1 dan 2

DOUBLE ROTATION
>> untuk kasus 3 dan 4

DELETION
Delete pada AVL sama seperti BST, node yang dihapus akan digantikan dengan node terbesar pada subtree kiri atau node terkecil pada subtree kanan. Setelah itu tree akan dicek kembali, apabila tidak seimbang maka akan diseimbangkan.

node yang ingin didelete adalah 60, sehingga 60 akan digantikan dengan 55. Namun setelah diganti terdapat ketidakseimbangan pada tree.

tree akan diseimbangkan dengan menggunakan single rotation, namun tree masih belum seimbang.

sehingga tree akan diseimbangkan kembali dengan menggunakan double rotation.

HEAP
1. Min Heap
- Node parent lebih kecil dibandingkan node anak-anaknya
- Root adalah node yang paling kecil di tree

INSERT

DEL ETE

2. Max Heap
- Node parent lebih besar dibandingkan node anak-anaknya
- Root adalah node yang paling besar di tree

INSERT

DELETE

3. Min Max Heap

INSERT
- node baru masuk ke inde terakhir
- jika node min,
- parent < node, swap dan upheapmax dari parentnya
- parent > node, upheapmin dari posisi node
- jika node max,
- parent > node, swap dan upheapmin dari parentnya
- parent < node, upheapmax dari posisi node
DELETE
- delete min : menghapus node terkecil (root)
- delete ma : menghapus node terbesar
- node yang dihapus digantikan oleh inde terakhir
- downheapmin jika delete min dan downheapmax jika delete max
TRIES
- setiap node isinya 1 huruf
- root melambangkan karakter kosong
Comments
Post a Comment