Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Algoritma dan Struktur Data AVL TREE Review BST. Pemakaian tree structure dalam proses pencarian (search) Sifat Binary Tree: Pada sebuah node x, –elemen.

Presentasi serupa


Presentasi berjudul: "Algoritma dan Struktur Data AVL TREE Review BST. Pemakaian tree structure dalam proses pencarian (search) Sifat Binary Tree: Pada sebuah node x, –elemen."— Transcript presentasi:

1 Algoritma dan Struktur Data AVL TREE Review BST

2 Pemakaian tree structure dalam proses pencarian (search) Sifat Binary Tree: Pada sebuah node x, –elemen yang berada di LEFT sub-tree selalu lebih KECIL daripada x –elemen yang berada di RIGHT sub-tree selalu lebih BESAR Atau SAMA DENGAN daripada x Binary Search Tree:proses pencarian (SEARCHING) berbasis binary tree Apakah Binary Search Tree itu ?

3 Example of a binary search tree

4 LATIHAN BST Coba simulasikan penambahan pada sebuah BST dengan urutan penambahan: –14, 16, 10, 8, 12, 4, 9, 1 –8, 12, 4, 9, 1, 14, 16, 10

5 Proses Pencarian (contoh SUKSES) search(7) 7<13 7>5 7==7 Data yang dicari BERHASIL ditemukan 13→5 →7

6 14 1016 812 49 1 LATIHAN BST 9 8 4 12 114 1610

7 Algoritma dan Struktur Data AVL TREE

8 Tujuan Memahami variant dari Binary Search Tree yang balanced Binary Search Tree yang tidak balance dapat membuat seluruh operasi memiliki kompleksitas running time O(n) pada kondisi worst case.

9 XX AVL Trees Untuk setiap node dalam tree, ketinggian subtree di anak kiri dan subtree di anak kanan hanya berbeda maksimum 1. H H-1 H-2

10 AVL Trees 10 5 3 20 2 13 10 5 3 20 1 43 5

11 AVL Trees 12 816 410 26 14

12 12 816 410 26 14 1 Insertion pada AVL Tree Setelah insert 1

13 Insertion pada AVL Tree Untuk menjamin kondisi balance pada AVL tree, setelah penambahan sebuah node. jalur dari node baru tersebut hingga root di simpan dan di periksa kondisi balance pada tiap node-nya. Jika setelah penambahan, kondisi balance tidak terpenuhi pada node tertentu, maka lakukan salah satu rotasi berikut: –Single rotation –Double rotation

14 Kondisi tidak balance R P Q k1k1 k2k2 Q k2k2 P k1k1 R Sebuah penambahan pada subtree: –P (outside) - case 1 –Q (inside) - case 2 Sebuah penambahan pada subtree: –Q (inside) - case 3 –R (outside) - case 4 H P =H Q =H R

15 A k2k2 B k1k1 C CB A k1k1 k2k2 Single Rotation (case 1)‏ H A =H B +1 H B =H C

16 Single Rotation (case 4)‏ C k1k1 B k2k2 A AB C k2k2 k1k1 H A =H B H C =H B +1

17 Q k2k2 P k1k1 R R P Q k1k1 k2k2 Keterbatasan Single Rotation Single rotation tidak bisa digunakan untuk kasus 2 dan 3 (inside case)‏ H Q =H P +1 H P =H R

18 C k3k3 A k1k1 D B k2k2 Double Rotation: Langkah C k3k3 A k1k1 D B k2k2 H A =H B =H C =H D

19 C k3k3 A k1k1 D B k2k2 Double Rotation: Langkah

20 C k3k3 A k1k1 D B k2k2 C k3k3 A k1k1 D B k2k2 Double Rotation H A =H B =H C =H D

21 B k1k1 D k3k3 A C k2k2 B k1k1 D k3k3 A C k2k2 Double Rotation H A =H B =H C =H D

22 3 Contoh penambahan 3 pada AVL tree 11 8 20 4 16 27 8 8 11 4 20 3 16 27

23 Contoh penambahan 5 pada AVL tree 5 11 8 20 4 16 27 8 4 11 8 20 5 16 27 8

24 Contoh Rotasi ke 2 8 11 5 20 4 16 27

25 AVL Trees: Latihan Coba simulasikan penambahan pada sebuah AVL dengan urutan penambahan: –10, 85, 15, 70, 20, 60, 30, 50, 65, 80, 90, 40, 5, 55 http://www.strille.net/works/media_technology_projects/av l-tree_2001/

26 Operasi: Remove pada AVL Tree 1.Menghapus node pada AVL Tree sama dengan menghapus binary search tree procedure dengan perbedaan pada penanganan kondisi tidak balance. 2.Penanganan kondisi tidak balance pada operasi menghapus node AVL tree, serupa dengan pada operasi penambahan. Mulai dari node yang diproses (dihapus) periksa seluruh node pada jalur yang menuju root (termasuk root) untuk menentukan node tidak balance yang pertama 3.Terapkan single atau double rotation untuk menyeimbangkan tree. 4.Bila Tree masih belum balance, ulangi lagi dari langkah 2.

27 Menghapus node X pada AVL Trees Deletion: –Kasus 1: jika X adalah leaf, delete X –Kasus 2: jika X punya 1 child, X digantikan oleh child tsb. –Kasus 3: jika X punya 2 child, ganti X secara rekursif dengan predecessor-nya secara inorder Rebalancing

28 Delete 55 (Kasus 1)‏ 60 2070 10406585 5153050 8090 55

29 Delete 55 (Kasus 1)‏ 60 2070 10406585 5153050 8090 55

30 Delete 50 (Kasus 2)‏ 60 2070 10406585 5153050 8090 55

31 Delete 50 (Kasus 2)‏ 60 2070 10406585 51530 50 8090 55

32 Delete 60 (Kasus 3)‏ 60 2070 10406585 5153050 8090 55 prev

33 Delete 60 (Kasus 3)‏ 55 2070 10406585 5153050 8090

34 Delete 55 (Kasus 3)‏ 55 2070 10406585 5153050 8090 prev

35 Delete 55 (Kasus 3)‏ 50 2070 10406585 51530 8090

36 Delete 50 (Kasus 3)‏ 50 2070 10406585 51530 8090 prev

37 Delete 50 (Kasus 3)‏ 40 2070 10306585 515 8090

38 Delete 40 (Kasus 3)‏ 40 2070 10306585 515 8090 prev

39 Delete 40 : Rebalancing 30 2070 106585 515 8090 Kasus ?

40 Delete 40: setelah rebalancing 30 7010 206585 5 15 8090 Single rotation is preferred!


Download ppt "Algoritma dan Struktur Data AVL TREE Review BST. Pemakaian tree structure dalam proses pencarian (search) Sifat Binary Tree: Pada sebuah node x, –elemen."

Presentasi serupa


Iklan oleh Google