AVL TREE
AVL Tree adalah binary search tree yang dapat menyeimbangkan dirinya sendiri. Tiap subtree kiri dan kanan memiliki perbedaan tinggi maksimal 1.
Terdapat 2 operation pada AVL Tree, yaitu :
Terdapat 2 operation pada AVL Tree, yaitu :
- Insertion
- Deletion
Proses insertion pada AVL Tree sama halnya dengan insertion pada Binary Search Tree. Dimana Node baru diposisikan sebagai leaf.
Rebalance pada AVL Tree dapat dilakukan dengan Single Rotation dan Double Rotation.
Terdapat 4 kasus dalam proses rebalance AVL Tree
Yang pertama, node terdalam terletak pada subtree kiri dari anak kiri T.
Yang kedua, node terdalam terletak pada subtree kanan dari anak kanan T.
Yang ketiga, node terdalam terletak pada subtree kanan dari anak kiri T.
Yang keempat, node terdalam terletak pada subtree kiri dari anak kanan T.
Untuk kasus 1&2 dapat diselesaikan dengan Single Rotation. Sedangkan, untuk kasus 3&4 dapat diselesaikan dengan Double Rotation.
Contoh Single Rotation
Contoh Double Rotation
Proses Deletion pada AVL Tree sama halnya dengan Deletion pada Binary Search Tree. Node yang dihapus digantikan oleh node terbesar pada subtree kiri atau node terkecil pada subtree kanan.
Contoh Deletion AVL Tree
Resources :
geeksforgeeks.org
javatpoint.com
Comments
Post a Comment