Skip to main content

AVL Tree Summary

Christophorus Wilson 2301869273

AVL Tree adalah Binary Search Tree yang bentuknya lebih diseimbangkan. Dengan adanya AVL Tree, pencarian suatu data akan membutuhkan waktu yang lebih singkat.

Di dalam AVL Tree, terdapat istilah yang disebut balance factor. Balance factor adalah variabel yang berfungsi untuk mengecek apakah suatu bagian di AVL Tree telah seimbang atau belum. Cara mendapatkan balance factor adalah dengan mencari selisih kedalaman antara subtree kiri dan subtree kanan suatu node. Sebuah node dikatakan seimbang apabila balance factornya tidak lebih dari 1.

Berikut adalah contoh dari balance factor


Insertion

Operasi insertion pada AVL Tree dilakukan seperti pada BST biasa, namun akan ditambahkan function untuk menyeimbangkan AVL Tree nya.






Dalam menyeimbangkan AVL Tree, terdapat 4 kemungkinan yang dapat terjadi. Misalkan node yang akan diseimbangkan adalah X
1. Node terdalam berada di subtree kiri dari anak kiri node X.
2. Node terdalam berada di subtree kanan dari anak kanan node X.
3. Node terdalam berada di subtree kanan dari anak kiri node X. 
4. Node terdalam berada di subtree kiri dari anak kanan node X.

Pada insertion, node terdalam adalah node yang akan dimasukkan.

Apabila yang terjadi adalah kemungkinan 1 dan 2, cara menyeimbangkannya adalah dengan melakukan single rotation.














Sedangkan bila yang terjadi adalah kemungkinan 3 dan 4, cara menyeimbangkannya adalah dengan melakukan double rotation.



Deletion

Operasi deletion pada AVL Tree juga pada dasarnya sama dengan BST, namun juga dibutuhkan function untuk menyeimbangkan AVL Tree tersebut.



Comments