AVL TREE
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.
Terdapat
beberapa perintah yang dapat di berikan kepada avl tree. Diantaranya adalah
insert dan delete. Pada insert terdapat beberapa kemungkinan. Kemungkinan pertama
adalah saat avl tree ditambahkan, avl tetap stabil (beda tinggi kiri dan kanan
tidak lebih dari 1) maka insert dilakukan seperti biasa. Kemungkinan kedua
adalah terjadi ketidak seimbangan. Bila terjadi ketidak seimbangan maka kita
harus mengecek 2 node setelah node yang tidak seimbang. Bila 2 node yang meada
yang membuat tidak seimbang berada pada 1 garis lurus (missal kiri dan kiri)
maka lakukan single rotation. Bila tidak lurus( missal kiri lalu kanan) maka
lakukan double rotation.
Perintah
kedua yang dapat dilakukan pada avl tree adalah delete. Pada perintah ini juga
bisa terjadi beberapa scenario. Bila pada saat didelet avl tree tetap seimbang,
maka lakukan delete seperti biasa. Bila pada saat delete ada yang tidak
seimbang maka, lakukan rotasi sesuai dengan kemungkinan pada insert.
Comments
Post a Comment