Binary Search Tree (BST)

Download Report

Transcript Binary Search Tree (BST)

Binary Search Tree (BST)
• BINARY SEARCH TREE (BST) adalah Binary Tree yang
terurut, dengan ketentuan :
• Semua Komponen yang berada pada cabang kiri harus
lebih kecil dari Bapak (parent) dan cabang kanan
• Semua Komponen yang berada pada cabang kanan
harus lebih besar dari cabang bapak (Parent) atau
cabang kiri.
• TARGET NODE
Node yang diinginkan/ dicari
• KEUNTUNGAN
Searching/ Pencarian Target Node menjadi lebih efisien
dan cepat.
Contoh BST
Example 1:
key is an integer
43
31
64
20
40
28
33
56
47
89
59
Example 1:
key is an integer
43
31
64
20
40
28
33
56
47
89
59
Insert
• Buat sebuah simpul baru
• Cari lokasi penambahan
• Kemudian tambahkan simpul yang baru
sebagai simpul daun
Algoritma Untuk Insert
Insert
Example:
57
43
31
64
20
40
28
33
56
47
89
59
Insert
Example:
57
43
31
64
20
40
28
33
56
47
89
59
57
Search: Checklist
• if target key is less than current node’s
key, search the left sub-tree.
• else, if target key is greater than current
node’s key, search the right sub-tree.
• returns:
– if found, pointer to node containing target key.
– otherwise, NULL pointer.
Search
Example:
59
43
31
64
20
40
28
33
56
47
89
59
57
found
Search
Example:
61
43
31
64
20
40
28
33
56
47
89
59
57
failed
Delete Key
Penghapusan terhadap key (simpul) harus tetap
menghasilkan BST sehingga hal-hal yang
dilakukan adalah :
1.Jika yang didelete adalah simpul
daun, maka tidak perlu dilakuka rotasi
43
31
64
20
40
28
33
56
47
89
59
57
2. Jika yang dihapus adalah simpul yang
mempunyai satu cabang/anak, maka simpul itu
digantikan oleh anaknya
43
31
64
20
40
28
33
56
47
59
57
43
31
56
20
40
28
33
47
59
57
3.
a.
b.
Jika yang dihapus adalah simpul yang memiliki 2
cabang/anak, maka simpul itu digantikan oleh
Dari cabang sebelah kiri yang paling kanan, atau
Dari cabang sebelah kanan yang paling kiri
43
43
31
28
20
40
28
33
20
40
33