• Tidak ada hasil yang ditemukan

Think Different Materi ASD 2014 pertemuan_18

N/A
N/A
Protected

Academic year: 2017

Membagikan "Think Different Materi ASD 2014 pertemuan_18"

Copied!
57
0
0

Teks penuh

(1)
(2)
(3)

Definisi

Sebuah binary tree dimana

(4)

Contoh BST

20

10

6

2 8

15

40

30

(5)

Binary Search Tree

Operasi BST : penambahan,

penghapusan, pencarian node tertentu, pencarian niai terkecil dan pencarian

nilai terbesar.

• Properti Binary Search Tree :

Untuk setiap node X, semua elemen di

(6)

Insert

Dimulai dengan

penelusuran dari root untuk mencari posisi yang tepat.

Jika elemen X

ditemukan (berarti X sudah ada di BST), maka tidak perlu melakukan aksi apapun.

Jika tidak, maka

letakkan X sebagai node terakhir pada jalur penelusuran

Time complexity =

(7)

Delete

Saat akan menghapus sebuah node,

kita juga harus memikirkan seluruh node anak dari node tsb.

Hal penting adalah agar pohon setelah

(8)

Operasi Penghapusan / remove()

Ada 3 kasus :

Elemen ada di leaf/daun.

Elemen yang memiliki degree 1.

(9)

Penghapusan Node Daun (Node

7)

Remove a leaf element. key = 7

20

10

6

2 8

15

40

30

25 35

7

(10)

Penhapusan Node Daun (Node

35)

Remove a leaf element. key = 35

20

10

6

2 8

15

40

30

25 35

7

(11)

Penghapusan Node Ber-degree 1

Remove from a degree 1 node. key = 40

20

10

6

2 8

15

40

30

25 35

7

(12)

Penghapusan Node Ber-degree 1

Remove from a degree 1 node. key = 15

20

10

6

2 8

15

40

30

25 35

7

(13)

Penghapusan Node Ber-degree 2

Remove from a degree 2 node. key = 10

20

10

6

2 8

15

40

30

25 35

7

(14)

Remove From A Degree 2 Node

20 10 6 2 8 15 40 30 25

Replace with largest key in left subtree (or smallest in right subtree).

35

7

(15)

Penghapusan Node Ber-degree 2

20 10 6 2 8 15 40 30 25

Replace with largest key in left subtree (or smallest in right subtree).

35

7

(16)

Penghapusan Node Ber-degree 2

20 8 6 2 8 15 40 30 25

Replace with largest key in left subtree (or smallest in right subtree).

35

7

(17)

Latihan

Remove from a degree 2 node. key = 20

20

10

6

2 8

15

40

30

25 35

7

(18)

Penghapusan Node Ber-degree 2

20

10

6

2 8

15

40

30

25

Replace with largest in left subtree.

35

7

(19)

Penghapusan Node Ber-degree 2

20

10

6

2 8

15

40

30

25

Replace with largest in left subtree.

35

7

(20)

Penghapusan Node Ber-degree 2

18

10

6

2 8

15

40

30

25

Replace with largest in left subtree.

35

7

(21)

Hasil Akhir

18

10

6

2 8

15

40

30

25 35

(22)

Pencarian pada BST

Jika mencari elemen

bernilai 15, maka akan langsung ditemukan.

Jika mencari elemen

bernilai < 15, maka kita cari di subpohon kiri.

Jika mencari elemen

(23)
(24)

findMin/ findMax

findMin : mengembalikan node dengan elemen

terkecil pada BST

Pencarian dimulai dari root dan bergerak ke kiri

terus sepanjang subpohon kiri dan berhenti pada elemen terakhir.

(25)

Algoritma dan Struktur Data

(26)

Tujuan

Memahami variant dari Binary Search Tree yang

balanced

 Binary Search Tree yang tidak balance dapat membuat seluruh

(27)

X X

AVL Trees

Untuk setiap node dalam tree, ketinggian

subtree di anak kiri dan subtree di anak kanan hanya berbeda maksimum 1.

H

(28)

AVL Trees

12

8 16

4 10

2 6

(29)

12

8 16

4 10

2 6

14

1

Insertion pada AVL Tree

(30)

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:

(31)

Kondisi tidak

balance

C A B k1 k2 B k2 A k1 C

Sebuah penambahan

pada subtree:

A (outside) - case 1B (inside) - case 2

Sebuah penambahan pada

subtree:

B (inside) - case 3C (outside) - case 4

(32)

A

k2

B k1

C

C B

A

k1

k2

Single Rotation (case 1)

(33)

Single Rotation (case 4)

C k1

B k2

A

A B C

k2

k1

(34)

B k2 A k1 C C A B k1 k2

Keterbatasan Single Rotation

Single rotation tidak bisa digunakan

untuk kasus 2 dan 3 (inside case)

(35)

C k3 A k1 D B k2

Double Rotation: Langkah

C k3 A k1 D B k2

(36)

C

k3

A

k1

D B

k2

(37)

C k3 A k1 D B k2 C k3 A k1 D B k2

Double Rotation

(38)

B k1 D k3 A C k2 B k1 D k3 A C k2

Double Rotation

(39)

3

Contoh

penambahan 3 pada AVL tree

11

8 20

4 16

27 8

8

11

4 20

(40)

Contoh

penambahan 5 pada AVL tree

(41)

Contoh

Rotasi ke 2

8

11

5 20

(42)

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

(43)

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.

(44)

Menghapus node X pada AVL Trees

Deletion:

Kasus 1: jika X adalah leaf, delete XKasus 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

(45)

Delete 55 (Kasus 1)

60

20 70

10 40 65 85

5 15 30 50 80 90

(46)

Delete 55 (Kasus 1)

60

20 70

10 40 65 85

5 15 30 50 80 90

(47)

Delete 50 (Kasus 2)

60

20 70

10 40 65 85

5 15 30 50 80 90

(48)

Delete 50 (Kasus 2)

60

20 70

10 40 65 85

5 15 30 50 80 90

(49)

Delete 60 (Kasus 3)

60

20 70

10 40 65 85

5 15 30 50 80 90

55

(50)

Delete 60 (Kasus 3)

55

20 70

10 40 65 85

(51)

Delete 55 (Kasus 3)

55

20 70

10 40 65 85

5 15 30 50 80 90

(52)

Delete 55 (Kasus 3)

50

20 70

10 40 65 85

(53)

Delete 50 (Kasus 3)

50

20 70

10 40 65 85

5 15 30 80 90

(54)

Delete 50 (Kasus 3)

40

20 70

10 30 65 85

(55)

Delete 40 (Kasus 3)

40

20 70

10 30 65 85

5 15 80 90

(56)

Delete 40 : Rebalancing

30

20 70

10 65 85

5 15 80 90

(57)

Delete 40: setelah

rebalancing

30

70 10

20 65 85

5

15 80 90

Referensi

Dokumen terkait

Rantai yang sebelah tepi dari residu-residu histidin (asam amino E7 dan F8 di dalam rantai α dan β) terletak pada tiap tepi bidang datar dari kelompok heme yang berinteraksi

Melihat fakta yang ada di wilayah kerja Puskesmas Tareran seperti tingkat pendidikan dan pengetahuan ibu tentang gizi, serta upaya-upaya yang sudah dilakukan untuk

Yang bertanda tangan di bawah ini menyatakan dengan sebenarnya, bahwa mahasiswa : Nama : NIM : Jurusan : ..4. Telah bebas dari tanggungan pinjaman selama tahun akademik

This, together with the fact that the acidified plant juice is an excellent medium for par example amino acid producing strains of Corynebacterium glutamicum , leads us to

The best yielding accession CPRO 883158 ex- ceeded in both trials the trial mean for plant health before winter, soil cover, early flowering, plant height, seed yield, thousand

Diperkenankan untuk dapat melakukan penelitian di Perusahaan / Instansi/ Laboratorium yang Bapak / Ibu pimpin sesuai dengan ketentuan yang berlaku. Penelitian akan dilaksanakan

The mechanical properties of the moulded plastics based on soluble protein black bean (BP) were superior in elongation, tensile strength and low water absorption than the

[r]