Binary Search Tree
Binary Search Tree adalah salah satu bentuk data structure yang mendukung searching secara lebih cepat, sorting lebih cepat, dan mempermudah insertion dan deletion.
Binary Search Tree juga dikenal sebagai versi sorting dari Binary Tree

Untuk node x = 8
- Elemen di sebelah kiri dari node x harus bernilai lebih kecil dari x
- Elemen di sebelah kanan dari node x harus bernilai lebih besar dari x
( dengan asumsi dimana setiap elemen / node bernilai berbeda satu dengan yang lain )
Basic Operation
- find(x) : find the key x
- insert(x) : insert new key x
- remove(x) : remove key x
Search
- karena kelebihan BST dimana searching sangat mudah dengan menggunakan BST
- misalkan kita ingin mencari x
- kita akan mulai dari root
- jika di root ditemukan nilai x ( root = x ), maka search akan dihentikan
- jika nilai x lebih kecil dari root, maka pencarian akan dilakukan secara rekursif di sub tree kiri dari root.
- Jika nilai x lebih besar dari roor, maka pencarian akan dilakukan secara rekursif di sub tree kanan dari root.
Insertion
- Insertion dilakukan secara rekursif
- Misalkan new key adalah x
- dimulai dari root
- Jika nilai x lebih kecil dari new key, maka nilai x akan dimasukkan ke daerah sub tree sebelah kiri.
- Jika nilai x lebih besar dari new key, maka nilai x akan dimasukkan ke daerah sub tree sebelah kanan.
- Dilakukan secara rekursif sampai terdapat node kosong untuk meletakkan (dimana x akan selalu menjadi new leaf )
Berikut adalah contoh insertion dimana merupakan pencarian tempat untuk node key baru.


Deletion
Terdapat tiga kondisi yang perlu dipertimbangkan :
- Jika key adalah leaf, maka node tersebut akan dihapus
- Jika key adalah node yang mempunyai satu child, maka node tersebut dihapus dan child akan dihubungkan dengan parent-nya
- Jika key adalah node yang mempunyai dua children, maka temukan
Berikut adalah contoh deletion yang merupakan penghapusan node key.

Comments
Post a Comment