AVL TREE
AVL Tree hampir sama dengan BST atau yang sering kita sebut Binary Search Tree. Dalam AVL Tree memiliki syarat atau ciri khas yaitu memiliki perbedaan tinggi/ level maksimal 1 antara anak kiri dan anak kanan. AVL Tree digunakan untuk membuat balance saat sedang lakukan penambahan node baru atau menghapus sebuah node. Kita dapat mencari balance factor dengan cara menghitung selisih panjang anak kiri dikurang dengan panjang anak kanan. Apabila tidak memiliki anak dianggap 0.
Insert node
Untuk menambahkan sebuah node baru ke dalam tree harus dilakukan pengecekan dimulai dari ujung leaf hingga root. Node pertama yang merusak atau memiliki balance factor lebih dari 1 maka akan diseimbangkan dengan Single Rotation atau Double rotation.
Single rotation
Single rotation dilakukan sekali ketika kondisi AVL Tree saat ditambahkan node baru dan posisi node tersebut seperti gambar dibawah ini:
Gambar yang kiri tidak balance karena balance factor dari 30 lebih dari 1 sehingga kita harus melakukan pemeriksaan dari bawah atau leaf yang tidak sesuai kriteria AVL Tree. Gambar yang kanan sudah balance dengan melakukan right rotation. Balance factor boleh =0.
Double rotation
Double rotation yaitu rotasi yang dilakukan 2 kali karena rotasi yang pertama belum sepenuhnya sesuai dengan kriteria AVL Tree.
Rotasi pertama dilakukan karena balance factor yang mengarah ke node baru lebih dari 1 yaitu 2. Sehingga melakukan pemeriksaan terhadap node yang merusak dan dilakukan rotasi pertama.
Rotas kedua dilakukan karena balance factor yang mengarah ke node baru lebih dari 1 yaitu masih 2. Sehingga melakukan pemeriksaan terhadap node yang merusak dan tree secara keseluruhan menjadi balance.
Delete node
Delete node dalam AVL Tree hampir sama dengan BST. Dengan menghapus sebuah node dapat membuat tree menjadi tidak balance sehingga harus dilakukan pengecekan dari node yang dihapus hingga ke root. Untuk membalance kembali dapat menggunakan single rotation atau double rotation. Contoh: ( menghaput node 60 )
Dilakukan rotasi pertama karena balance factor yang mengarah ke leaf 42 lebih dari 1 yaitu 2. Agar tree balance makan dilakukan left rotation terlebih dahulu.
Dilakukan rotasi kedua karena balance factor yang mengarah ke leaf 10 lebih dari 1 yaitu 2. Sehingga dilakukan right rotation agar secara keseluruhan tree seimbang atau balance.
Nama : Dewi Mutiara
NIM : 2301887830
Kelas : CB01







Komentar
Posting Komentar