Algoritma dan Struktur Data

28
Algoritma dan Struktur Data Binary Search Tree

description

Algoritma dan Struktur Data. Binary Search Tree. Konsep Dasar. Binary search tree (BST) merupakan binary tree dengan sifat berikut: Semua item pada left subtree bernilai kurang dari root. Semua item pada right subtree bernilai lebih atau sama dengan root. Setiap subtree merupakan BST. - PowerPoint PPT Presentation

Transcript of Algoritma dan Struktur Data

Page 1: Algoritma dan Struktur Data

Algoritma dan Struktur Data

Binary Search Tree

Page 2: Algoritma dan Struktur Data

2

Konsep Dasar

Binary search tree (BST) merupakan binary tree dengan sifat berikut: Semua item pada left subtree bernilai kurang

dari root. Semua item pada right subtree bernilai lebih

atau sama dengan root. Setiap subtree merupakan BST.

Page 3: Algoritma dan Struktur Data

3

Binary search tree

Page 4: Algoritma dan Struktur Data

4

Valid binary search tree

Page 5: Algoritma dan Struktur Data

5

Invalid binary search tree

Page 6: Algoritma dan Struktur Data

6

Operasi pada BST

• Traversals• Searches• Insertion• Deletion

Page 7: Algoritma dan Struktur Data

7

Example of a binary search tree

Page 8: Algoritma dan Struktur Data

8

Traversals

Preorder traversal

23 18 12 20 44 35 52 Postorder traversal

12 20 18 35 52 44 23 Inorder traversal

12 18 20 23 35 44 52Inorder traversal pada BST menghasilkan nilai yang terurut dari kecil ke besar

Page 9: Algoritma dan Struktur Data

9

Traversals

Bagaimana aturan tranversal yang menghasilkan urutan dari besar ke kecil?

52 44 35 23 20 18 12

Page 10: Algoritma dan Struktur Data

10

Searches

Beberapa jenis algoritma search: Mencari node dengan nilai terkecil Mencari node dengan nilai terbesar Mencari node dengan nilai tertentu (BST

search)

Page 11: Algoritma dan Struktur Data

11

Find the smallest node

Page 12: Algoritma dan Struktur Data

12

Find the smallest node

Page 13: Algoritma dan Struktur Data

13

Find the largest noderight subtree

not empty

right subtree not empty

right subtree empty return

Page 14: Algoritma dan Struktur Data

14

Find the largest node

Page 15: Algoritma dan Struktur Data

15

BST and the binary serch

Page 16: Algoritma dan Struktur Data

16

Page 17: Algoritma dan Struktur Data

17

Page 18: Algoritma dan Struktur Data

18

Insertion

BST insertion dilakukan pada leaf node

Page 19: Algoritma dan Struktur Data

19

BST Insertion

Page 20: Algoritma dan Struktur Data

20

BST Insertion

Page 21: Algoritma dan Struktur Data

21

Page 22: Algoritma dan Struktur Data

22

Trace of recursive BST insert

Page 23: Algoritma dan Struktur Data

23

Deletion

Untuk menghapus sebuah node dari BST, mula – mula lakukan search untuk mencari node yang akan dihapus.

Terdapat empat kasus pada penghapusan sebuah node di BST. Node yang dihapus : Tidak memiliki child Hanya punya right subtree. Hanya punya left subtree Punya dua subtree

Page 24: Algoritma dan Struktur Data

24

Four cases when we delete a node

1. Node tidak memiliki child Hapus node

2. Node hanya memiliki right subtree. Hapus node Sambungkan right subtree ke parent node yang

akan dihapus.

3. Node hanya memiliki left subtree. Hapus node Sambungkan left subtree ke parent node yang akan

dihapus.

Page 25: Algoritma dan Struktur Data

25

Four cases when we delete a node

4. Node memiliki dua subtree. Temukan node dengan nilai terbesar pada left

subtree node yang dihapus kemudian pindahkan node tersebut untuk menggantikan node yang dihapus or

Temukan node dengan nilai terkecil pada right subtree node yang dihapus kemudian pindahkan node tersebut untuk menggantikan node yang dihapus.

Page 26: Algoritma dan Struktur Data

26

/* dltKey = root */

Page 27: Algoritma dan Struktur Data

27

(continued)

Page 28: Algoritma dan Struktur Data

28