AVL TREE
Pada blog sebelumnya , kita sudah mempelajari mengenai Binary Search Tree (BST)secara umum. Tapi kalian tau gak sih kalo ada kelemahan pada BST? Kelemahannya adalah kalau BST  di input oleh user secara incremental atau decremetal bentuknya akan berurutan dan menjadi tidak seimbang.

Nah karena kelemahannya itulah ada yang diciptakanlah AVL Tree yaitu BST yang di seimbangkan.  AVL Tree adalah BST yang memiliki perbedaan tinggi atau level maksimal 1 antara subtree kiri dan subtree kanan. Dengan adanya AVL Tree, waktu pencarian dan bentuk tree dapat dipersingkat dan disederhanakan.

Berikut adalah contoh BST yg unbalanced (kanan) dan Tree yang balanced (kiri) dengan AVL.


               Biasanya pada saat user melakukan insertion pada sebuah tree, terjadi ketidakseimbangan. Ketidakseimbangan itu bisa diatasi dengan melakukan rotasi (rotation) pada node dalam AVL tree. Ada 2 jenis rotasi pada AVL Tree yaitu :
·        Single Rotation (Left Rotation, Right Rotation)
·        Double Rotation (Left – Right Rotation, Right – Left Rotation)

Ada 4 kasus yang biasanya terjadi saat operasi insert dilakukan, yaitu :
anggap T adalah node yang harus diseimbangkan kembali

Kasus 1 : node terdalam terletak pada subtree kiri dari anak kiri T (left-left)
Kasus 2 : node terdalam terletak pada subtree kanan dari anak kanan T (right-right)
Kasus 3 : node terdalam terletak pada subtree kanan dari anak kiri T (right-left)
Kasus 4 : node terdalam terletak pada subtree kiri dari anak kanan T (left-right)



Kasus 1 dan 2 bisa diselesaikan dengan Single Rotation 
Kasus 3 dan 4 bisa diselesaikan dengan Double Rotation

Berikut adalah contoh Single Rotation dan Double Rotation

Single Rotation


Double Rotation

Untuk penjelasan lebih lengkap dan mendalam mengenai single rotation dan double rotation yuk klik link ini..  https://www.tutorialspoint.com/data_structures_algorithms/avl_tree_algorithm.htm
Kita belajar sama-sama ya... :)


Sekian blog ini..terima kasih..

*BONUS link ini dipakai buat simulasi AVL guys!!! 


Sumber pembelajaran :















Comments