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 :

  • 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

Popular posts from this blog

LINKED LIST

Linked List Review