Binary Search Tree
Halo teman-teman, pada kesempatan kali ini saya ingin berbagi tentang Binary Search Tree.
Pendahuluan
Binary Search Tree (BST) adalah sebuah binary tree yang memiliki ciri-ciri sebagai berikut :
1. Setiap node mempunyai value dan tidak ada value yang double
2. Value yang ada di kiri tree lebih kecil dari rootnya
3. Value yang ada di kanan tree lebih besar dari rootnya
4. Kiri dan kanan tree bisa menjadi root lagi atau bisa mempunya child jadi BST ini memiliki sifat ( rekrusif )
Operasi Dasar
Binary Search Tree memiliki 3 operasi dasar yaitu :
1. Searching : mencari value di dalam BST
1. Searching : mencari value di dalam BST
2. Insertion : memasukkan value baru ke dalam BST
3. Deletion : menghapus key / value dari BST
Searching
Bayangkan kita akan mencari value X :
1. Memulai Pencarian Dari Root
2. Jika Root adalah value yang kita cari , maka berhenti
3. Jika x lebih kecil dari root maka cari kedalam rekursif tree sebelah kiri
4. Jika x lebih besar dari root maka cari kedalam rekursif tree sebelah kanan
Insertion
Bayangkan kita menginsert value x :
1. Dimulai dari root
2. Jika x lebih kecil dari node value(key) kemudian cek dengan sub-tree sebelah kiri lakukan pengecekan secara berulang ( rekursif )
3. Jika x lebih besar dari node value(key) kemudian cek dengan sub-tree sebelah kanan lakukan pengecekan secara berulang ( rekursif )
4. Ulangi sampai menemukan node yang kosong untuk memasukan value X ( X akan selalu berada di paling bawah biasa di sebut Leaf atau daun )
Deletion
Akan ada 3 case yang ditemukan ketika ingin menghapus yang perlu diperhatikan :
1. Jika value yang ingin dihapus adalah Leaf(Daun) atau paling bawah , langsung delete
2. Jika value yang akan dihapus mempunyai satu anak, hapus nodenya dan gabungkan anaknya ke parent value yang dihapus
3. Jika value yang akan di hapus adalah node yang memiliki 2 anak , maka ada 2 cara , kita bisa cari dari left sub-tree anak kanan paling terakhir(leaf) (kiri,kanan)
Comments
Post a Comment