AVL Tree

AVL TREE
AVL Tree (Adelson-Velsky & Landis Tree) adalah sebuah data struktur turunan dari data struktur tree yang dapat disebut juga sebuah self balancing binary tree atau binary search tree yang memiliki kemampuan untuk menyeimbangkan dirinya. Maksud dari keseimbangan tree ini adalah perbedaan kedalaman dari tree yang dimaksud.
AVL Trees in Python - Akshay Kumar - Medium
Gambar diatas merupakan salah satu contoh dari AVL tree yang dimaksud. pada gambar tersebut, Binary Tree Search ini dapat dikatakan seimbang karena perbedaan pada jumlah subtree setiap root tidak lebih dari satu.

Rotation
Sebelum kita memasuki insertion dan deletion, ada baiknya kita terlebih dahulu memahami konsep rotation yang krusial untuk kedua langkah tersebut. Apa sebenarnya rotation itu?
Rotation dalam konteks ini bisa dikatakan penggantian pointer dari node yang tidak seimbang dengan melakukan pemutaran node pada tree yang tidak seimbang.


Insertion dan Deletion
Untuk insertion, akan dilakukan pemasukan data seperti biasa pada BST, tetapi ada hal lain yang akan diperhatikan, yaitu unsur keseimbangan node yang telah diberikan. Jika sebuah node memiliki selisi pada jumlah subtree yang mereka miliki (>1 jika berat kanan atau <-1 jika berat kiri). Jika terjadi ketidak seimbangan ini, maka akan dilakukan rotation berdasarkan kasus yang muncul pada BST.

Sedangkan pada deletion, hal serupa akan dilakukan setelah dilakukan penghapusan node. saat penghapusan node, maka height dari successor atau predessecor akan di rebalance atau di hitung heightnya kembali.

Daftar Pustaka
https://www.geeksforgeeks.org/avl-tree-set-1-insertion/



Komentar

Postingan populer dari blog ini

Heap (Max And Min) & Tries

Linked List : Is it an Array?

Hash and Trees