AVL Tree
AVL tree adalah sebuah Binary Search Tree yang bisa menyeimbangkan antara tinggibagian kiri dengan tinggi bagian kanan.
Contoh sebuah AVL Tree
Perbedaan tinggi subtree bagian kanan dan kiri adalah kurang dari sama dengan 1.
Contoh yang bukan AVL Tree
Perbedaan tinggi subtree 8 dan 18 lebih dari 1.
AVL Tree sangat berguna karena BST biasa yang bukan AVL Tree, membutuhkan waktu yang cukup lama untuk beroperasi.
Insertion
Proses insertion AVL Tree dan BST cukup mirip, hanya saja setelah diinsert, AVL Tree langsung menyeimbangkan subtree kiri dan kanan.
Contoh X adalah node yang akan diinsert,
Contoh left rotation
Source:
https://www.freecodecamp.org/news/avl-tree-insertion-rotation-and-balance-factor/
https://www.geeksforgeeks.org/avl-tree-set-1-insertion/
Contoh sebuah AVL Tree
Perbedaan tinggi subtree bagian kanan dan kiri adalah kurang dari sama dengan 1.
Contoh yang bukan AVL Tree
Perbedaan tinggi subtree 8 dan 18 lebih dari 1.
AVL Tree sangat berguna karena BST biasa yang bukan AVL Tree, membutuhkan waktu yang cukup lama untuk beroperasi.
Insertion
Proses insertion AVL Tree dan BST cukup mirip, hanya saja setelah diinsert, AVL Tree langsung menyeimbangkan subtree kiri dan kanan.
Contoh X adalah node yang akan diinsert,
- Case 1 : node terdalam terletak pada subtree kiri dari anak kiri X (left-left)
- Case 2 : node terdalam terletak pada subtree kanan dari anak kanan X (right-right)
- Case 3 : node terdalam terletak pada subtree kanan dari anak kiri X (right-left)
- Case 4 : node terdalam terletak pada subtree kiri dari anak kanan X (left-right
Contoh left rotation
Source:
https://www.freecodecamp.org/news/avl-tree-insertion-rotation-and-balance-factor/
https://www.geeksforgeeks.org/avl-tree-set-1-insertion/
Comments
Post a Comment