Algoritma dan Struktur Data AVL Tree Outline AVL
- Slides: 43
Algoritma dan Struktur Data AVL Tree
Outline AVL Tree Definisi Sifat Operasi 27 th Mar 2007
AVL Tree Binary Search Trees yang tidak imbang memiliki efisiensi yang buruk. Worst case: O(n). AVL (Adelson-Velskii & Landis) tree adalah BST yang imbang. Setiap node di AVL tree memiliki balance factor bernilai -1, 0, atau 1. X H H-1 27 th Mar 2007 X H-2
AVL Tree 10 10 5 5 20 3 3 1 27 th Mar 2007 3 20 43
AVL Tree 12 8 4 2 27 th Mar 2007 16 10 6 14
Penyisipan node di AVL Tree Setelah insert 1 12 8 4 2 1 27 th Mar 2007 16 10 6 14
Penambahan node di AVL Tree 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 Double rotation 27 th Mar 2007
AVL Tree Balance Factor • Balance factor = HL – HR • Balance factor node di AVL tree harus +1, 0, -1 • Identifier: – LH left high (+1) left subtree lebih panjang dari right subtree. – EH even high (0) subtree kiri dan kanan heightnya sama. – RH right high (-1) left subtree lebih pendek dari right subtree. 8
9
Menyeimbangkan AVL Tree • AVL trees diseimbangkan dengan merotasikan node ke kiri atau ke kanan • Kasus penyeimbangan pada sebuah node: 1. Left of left: mengalami left high dan left subtreenya mengalami left high. 2. Right of right: mengalami right high dan right subtreenya mengalami right high. 3. Right of left: Mengalami left high dan left subtreenya mengalami right high. 4. Left of right: Mengalami right high dan right subtreenya mengalami left high. 10
HL =3 HL =1 11 HR =3
(continued) HL =3 HL =1 12 HR =1 HR =3
Case 1: Left of Left 13
Case 2: Right of Right 14
Case 3: Right of Left 15
Case 4: Left of Right 16
Contoh Sisipkan 3 ke AVL tree 11 11 8 4 3 27 th Mar 2007 20 16 4 27 3 20 8 16 27
Contoh Penyisipan 5 ke AVL tree 11 11 8 4 16 5 27 th Mar 2007 20 5 27 4 20 8 16 27
Latihan Sisipkan data berikut ke AVL tree secara berurutan: 10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55 27 th Mar 2007
Menghapus node di AVL Tree 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. 27 th Mar 2007
Menghapus node di AVL Tree Tahap penghapusan: Case 1: X merupakan leaf, hapus X Case 2: jika X memiliki 1 child, gunakan child tersebut untuk menggantikan X. Kemudian hapus X Case 3: Jika X memiliki 2 child, ganti nilai X dengan node terbesar pada left subtree atau node terkecil pada right subtree. Hapus node yang nilainya digunakan untuk mengganti X Tahap menyeimbangkan node yang balance factornya tidak -1, 0, 1, dilakukan dari node yang dihapus menuju root. 27 th Mar 2007
22
23
24
25
26
27
28
29
30
Delete 55 (case 1) 60 20 70 10 5 40 15 30 65 80 50 55 27 th Mar 2007 85 90
Delete 55 (case 1) 60 20 70 10 5 40 15 30 65 80 50 55 27 th Mar 2007 85 90
Delete 50 (case 2) 60 20 70 10 5 40 15 30 65 80 50 55 27 th Mar 2007 85 90
Delete 50 (case 2) 60 20 70 10 5 40 15 30 65 50 55 27 th Mar 2007 85 80 90
Delete 60 (case 3) 60 20 70 10 5 40 15 30 65 50 prev 55 27 th Mar 2007 85 80 90
Delete 60 (case 3) 55 20 70 10 5 27 th Mar 2007 40 15 30 65 50 85 80 90
Delete 55 (case 3) 55 20 10 5 27 th Mar 2007 40 15 70 prev 30 65 50 85 80 90
Delete 55 (case 3) 50 20 70 10 5 27 th Mar 2007 40 15 30 65 85 80 90
Delete 50 (case 3) 50 prev 20 10 5 27 th Mar 2007 40 15 30 70 65 85 80 90
Delete 50 (case 3) 40 20 10 5 27 th Mar 2007 70 30 15 65 85 80 90
Delete 40 (case 3) 40 20 10 5 27 th Mar 2007 30 15 70 prev 65 85 80 90
Delete 40 : Rebalancing 30 20 10 5 27 th Mar 2007 Case ? 15 70 65 85 80 90
Delete 40: after rebalancing 30 10 70 20 5 15 27 th Mar 2007 65 85 80 90
- Construct an avl tree for the following data
- Data struktur dan algoritma
- Threaded binary tree advantages and disadvantages
- Avl tree ll rotation
- Split avl tree
- Single rotation in avl tree
- Sifat struktur data tree
- Avl tree applet
- Avl tree demo
- Avl tree of months
- Avl tree quiz
- Tree traversal
- Avl-tree
- Avl tree maker
- Avl tree
- Insertion in avl tree
- Transform and conquer algorithm
- Gadt haskell
- Arbre avl
- Pohon struktur
- Sifat sifat struktur data tree
- Struktur fisik puisi terdiri dari
- Avl data structure
- Paragraph sandwich example
- Pengulangan algoritma
- Flowchart sekuensial
- Instruksi p = q akan mengakibatkan nilai
- Struktur while akan mengulang pernyataan pada
- Struktur teks algoritma
- Algoritma dapat disajikan dengan menggunakan
- Instruksi dikerjakan secara sekuensial
- Contoh algoritma percabangan
- Algoritma
- Struktur dasar algoritma antara lain
- Editable phylogenetic tree template
- Struktur internal biji
- Gene tree vs phylogenetic tree
- Difference between plus tree and elite tree
- Complete and full binary tree
- Problem tree and solution tree
- General tree to binary tree
- Tournament tree
- Winner tree
- 2-3-4 tree to red black