AVL TREE


AVL Tree ditemukan oleh Adelson-Velskii dan Landis. AVL Tree merupakan salah satu jenis BST (binary Search Tree). BST digunakan dengan tujuan untuk mempercepat pencarian data. Apabila BST yg terbentuk cukup seimbang (mendekati complete binary tree) maka waktu pencarian data tidak lebih dari log2n langkah.

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.

INSERTION
Untuk menjaga tree tetap imbang, setelah penyisipan sebuah node, dilakukan pemeriksaan dari node baru → root. Node pertama yang memiliki |balance factor| > 1 diseimbangkan. Proses penyeimbangan dilakukan dengan single rotation dan double rotation.

KASUS INSERTION PADA AVL TREE
*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)


Ke-4 kasus tersebut dapat diselesaikan dengan melakukan rotasi
  •  Kasus 1 dan 2 dengan single rotation
  • Kasus 3 dan 4 dengan double rotation


Contoh – Single Rotation: Jika suatu Tree diinsert node baru dengan nilai 12, maka akan terjadi ketidak seimbangan dan hal ini terletak pada posisi root

Contoh – Double Rotation : Jika terdapat sebuah tree yang kemudian dilakukan insert node 26. Maka akan terjadi ketidak seimbangan, sehingga terlihat dari bentuknya dapat diselesaikan dengan kasus 4.

DELETE
Proses menghapus sebuah node di AVL tree hampir sama dengan BST. Penghapusan sebuah node dapat menyebabkan tree tidak imbang Setelah menghapus sebuah node, lakukan pengecekan dari node yang dihapus → root. Gunakan single atau double rotation untuk menyeimbangkan node yang tidak imbang. Pencarian node yang imbalance diteruskan sampai root.





Sumber :


Comments

Popular posts from this blog

Binary Search Tree (BST)

Rangkuman Data Structure