bab 10 tree_lanjutan

24
Tree Lanjutan

Upload: ariimanroe

Post on 11-Jul-2015

84 views

Category:

Engineering


3 download

TRANSCRIPT

Page 1: Bab 10 tree_lanjutan

Tree Lanjutan

Page 2: Bab 10 tree_lanjutan

Kunjungan Pohon (Tree Traversal)

• Tree traversal adalah bagaimana mengunjungi node-node pada pohon biner

• 3 Cara Kunjungan Pohon :– Pre-order– In-order– Post-order

Page 3: Bab 10 tree_lanjutan

Pre-Order Traversal

• Pre-order traversal1. Cetak data pada root

2. Secara rekursif mencetak seluruh data pada subpohon kiri

3. Secara rekursif mencetak seluruh data pada subpohon kanan

Page 4: Bab 10 tree_lanjutan

In-Order Traversal

• In-order traversal1.Secara rekursif mencetak seluruh data pada

subpohon kiri

2.Cetak data pada root

3.Secara rekursif mencetak seluruh data pada subpohon kanan

Page 5: Bab 10 tree_lanjutan

Post-order Traversal

• Post-order traversal1.Secara rekursif mencetak seluruh data pada

subpohon kiri

2.Secara rekursif mencetak seluruh data pada subpohon kanan

3.Cetak data pada root

Page 6: Bab 10 tree_lanjutan

Contoh : Pohon Ekspresi

Page 7: Bab 10 tree_lanjutan

Pre-Order, Post-Order, In-Order

• Pre-order :– Node, left, right– Ekspresi Prefix : ++a*bc*+*defg

• Post-order :– Node, left, right– Ekspresi Postfix : abc*+de*f+g*+

• In-order :– Node, left, right– Ekspresi Infix : a+b*c+d*e+f*g

Page 8: Bab 10 tree_lanjutan

Algoritma Preorder

Page 9: Bab 10 tree_lanjutan

Algoritma Postorder

Page 10: Bab 10 tree_lanjutan

Algoritma Inorder

Page 11: Bab 10 tree_lanjutan

Binary Search Tree

• Properti Binary Search Tree :– Untuk setiap node X, semua elemen di

subpohon kirinya bernilai lebih kecil dari nilai X dan semua elemen di subpohon kanannya bernilai lebih besar dari nilai X.

Page 12: Bab 10 tree_lanjutan

Contoh

Binary Search Tree Bukan Binary Search Tree

Page 13: Bab 10 tree_lanjutan

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 bernilai > 15, maka kita cari di subpohon kanan.

Page 14: Bab 10 tree_lanjutan
Page 15: Bab 10 tree_lanjutan

Inorder traversal thd BST

• Mencetak semua elemen pada BST

Inorder: 2, 3, 4, 6, 7, 9, 13, 15, 17, 18, 20

Page 16: Bab 10 tree_lanjutan

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.

• Proses serupa terhadap metode findMax

Page 17: Bab 10 tree_lanjutan

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 = O(height of the tree)

Page 18: Bab 10 tree_lanjutan

Delete

• Saat akan menghapus sebuah node, kita juga harus memikirkan seluruh node anak dari node tsb.– Hal penting adalah agar pohon setelah

dihapus tetap merupakan BST.

Page 19: Bab 10 tree_lanjutan

DeleteTerdapat 3 kasus pada penghapusan :

(1) Node yang dihapus adalah daun– Langsung dihapus

(2) Node yang dihapus hanya punya 1 anak– Arahkan pointer (buat cabang baru) dari induk node

langsung ke anaknya

Page 20: Bab 10 tree_lanjutan

Delete (Kasus 2)

Page 21: Bab 10 tree_lanjutan

Delete(3) Node yang dihapus punya 2 anak

– Ganti nilai dari node yang dihapus dengan nilai terkecil dari subpohon kanannya

– Delete element terkecil

Page 22: Bab 10 tree_lanjutan

Delete (Kasus 3)

– Proses penghapusan dapat menyebabkan terulangnya 3 kasus di atas.

Page 23: Bab 10 tree_lanjutan

AVL Tree

• AVL Properti :– Sebuah node memiliki AVL property jika height (tinggi) subpohon kiri & subpohon kanan node tsb sama atau berbeda 1.

– Height (tinggi) pohon adalah jarak dari root menuju daun terbawah yang dimiliki pohon tsb

• AVL Tree adalah pohon yang setiap node nya memiliki AVL property

Page 24: Bab 10 tree_lanjutan

AVL Tree