• Tidak ada hasil yang ditemukan

Think Different Materi ASD (SISKOM) AVL TREE fix

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different Materi ASD (SISKOM) AVL TREE fix"

Copied!
40
0
0

Teks penuh

(1)

Algoritma dan Struktur Data

AVL TREE

(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

(3)
(4)

LATIHAN BST

 Coba simulasikan penambahan pada sebuah BST dengan urutan

penambahan:

(5)

Proses Pencarian (contoh SUKSES)

search(7) 7<13

7>5

7==7

Data yang dicari BERHASIL ditemukan

(6)

14

10 16

8 12

4 9

1

LATIHAN BST

(7)

Algoritma dan Struktur Data

(8)

Tujuan

 Memahami variant dari Binary Search Tree yang

balanced

 Binary Search Tree yang tidak balance dapat

(9)

X X

AVL Trees

 Untuk setiap node dalam tree, ketinggian subtree di anak kiri dan subtree di anak kanan hanya berbeda maksimum 1.

H

(10)
(11)

AVL Trees

12

8 16

4 10

2 6

(12)

12

8 16

4 10

2 6

14

1

Insertion pada AVL Tree

(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

(14)

Kondisi tidak balance

 Sebuah penambahan

pada subtree:

– P (outside) - case 1 – Q (inside) - case 2

 Sebuah penambahan pada

subtree:

(15)

A

Single Rotation (case 1)

(16)

Single Rotation (case 4)

C k1

B k2

A

A B C

k2 k1

HA=HB

(17)

Q

Keterbatasan Single Rotation

 Single rotation tidak bisa digunakan untuk kasus 2 dan 3 (inside case)

(18)

C

Double Rotation: Langkah

(19)

C

k3

A

k1

D B

k2

(20)

C

Double Rotation

(21)

B

Double Rotation

(22)

3

Contoh

 penambahan 3 pada AVL tree

11

8 20

4 16 27

8

8

11

4 20

(23)

Contoh

 penambahan 5 pada AVL tree

(24)

Contoh

 Rotasi ke 2

8

11

5 20

(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

(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.

(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

(28)

Delete 55 (Kasus 1)

60

20 70

10 40 65 85

5 15 30 50 80 90

(29)

Delete 55 (Kasus 1)

60

20 70

10 40 65 85

5 15 30 50 80 90

(30)

Delete 50 (Kasus 2)

60

20 70

10 40 65 85

5 15 30 50 80 90

(31)

Delete 50 (Kasus 2)

60

20 70

10 40 65 85

5 15 30 50 80 90

(32)

Delete 60 (Kasus 3)

60

20 70

10 40 65 85

5 15 30 50 80 90

55

(33)

Delete 60 (Kasus 3)

55

20 70

10 40 65 85

(34)

Delete 55 (Kasus 3)

55

20 70

10 40 65 85

5 15 30 50 80 90

(35)

Delete 55 (Kasus 3)

50

20 70

10 40 65 85

(36)

Delete 50 (Kasus 3)

50

20 70

10 40 65 85

5 15 30 80 90

(37)

Delete 50 (Kasus 3)

40

20 70

10 30 65 85

(38)

Delete 40 (Kasus 3)

40

20 70

10 30 65 85

5 15 80 90

(39)

Delete 40 : Rebalancing

30

20 70

10 65 85

5 15 80 90

(40)

Delete 40: setelah rebalancing

30

70 10

20 65 85

5

15 80 90

Referensi

Dokumen terkait

Menambah sebuah node pada doubly linked list. Menghapus sebuah node dari doubly

node yang didelete memiliki 1 anak berwarna merah maka ganti warna anak tersebut menjadi hitam. • Jika proses delete tersebut

node yang didelete memiliki 1 anak berwarna merah maka ganti warna anak tersebut menjadi hitam. • Jika proses delete tersebut

Graph dengan 6 node dan 7 edge yang merepresentasikan jaringan pertemanan pada Facebook.. • Setiap sisi berlaku

Selain AVL Tree, terdapat pula Height Balanced n Tree, yakni Binary Search Tree yang memiliki perbedaan level antara subtree kiri dan subtree kanan maksimal

Operasi dasar dari binary search tree(BST) ini sendiri sangatlah sederhana, yakni hanya fungsi perbandingan dan fungsi rekursif. Di mana anak pohon sebelah kiri node

POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Binary Search Tree Sebuah node di Binary Search Tree memiliki path yang unik dari root menurut aturan ordering ◦ Sebuah Node, mempunyai subtree

Properties of Binary Search Tree  Untuk setiap node X pada tree, nilai elemen pada subtree sebelah kiri selalu lebih kecil dari elemen node X dan nilai elemen pada subtree sebelah