Binary Search Tree
Binary search tree merupakan salah satu Teknik
searching di dalam data structure. Binary search memiliki keunggulan jika dibandingkan
dengan metode searching lainnya. Keunggulan Binary search adalah dapat men searching
file dengan cepat, mensort dengan cepat dan dapat dengan mudah menginsert atau
mendelete. Lalu apa bedanya binary search tree dengan binary tree? Binary search
tree bisa dibilang merupakan versi sorted dari binary tree. Namun di dalam BST
ada beberapa aturan yaitu:
- Subtree
sebelah kiri selalu lebih kecil nilainya dari pada root node.
- Subtree
sebelah kanan selalu lebih besar nilainya daripada root node.
- Subtree kiri dan kanan
masing-masing juga harus berupa Binary Search Three.
Terdapat 3 buah operasi yang dapat dilakukan
di Binary Search Tree
- find(x): Mencari node x di
dalam sebuah BST.
- insert(x): memasukan node x
baru kedalam BST.
- remove(x): Mendelete node x dari
dalam sebuah BST.
Operasi find/search:
Seperti yang kita ketahui, salah satu keunggulan
dari BST adalah bisa mencari data dengan cepat. Berikut adalah langkah operasi
pencarian x dalam BST.
- Operasi dimulai dari root
sebuah BST. Jika x berada berada pada root maka pencarian sudah selesai.
- Jika tidak terdapat di root
maka dilanjutkan dengan melihat apakah x leibh kecil dari root key atau lebih
besar.
- Bila x lebih kecil maka
pencarian akan dilanjutkan ke subtree sebelah kiri secara rekursif.
- Bila x lebih besar maka pencarian
akan dilanjutkan ke subtree sebelah kanan secara rekursif.
Operasi Insertion:
sumber: https://blogger.googleusercontent.com/img/proxy/AVvXsEg5m0k8s6IcTrBVZKFjARzWJRsZOs_1_LtT2hxDtION01HCeUqER6i7Ly27ebjKrYYkQ0JORXzenaUQ5IANUF9loQ8tAXpfuqEX6aUE_tjA_KYVA4H_CtpzB8T4_AeWMMQPBJ7ahrruimVeKqMluUBYrDQa5BbLl8iGESY47192E_lz=
Operasi ini memungkinkan anda dalam menginsert sebuah node ke dalam BST. Menginsert sebuah node ke dalam BST bisa dilakukan dengan mudah. Berikut adalah langkah dalam menginsert x.
- Dimulai dari root sebuah BST.
Lalu dibandingkan apakah x lebih kecil atau lebih besar dari root.
- Jika x lebih kecil dari root
maka x akan diinsert di subtree sebelah kiri.
- Jika x lebih besar dari root
maka x akan diinsert di subtree sebelah kanan.
Sumber: https://www.geeksforgeeks.org/binary-search-tree-set-1-search-and-insertion/ |
-
Operasi Deletion:
Sumber: https://qph.fs.quoracdn.net/main-qimg-fd652710dbeb9b064a6323aeff477005.webp |
Di dalam BST, kita tidak hanya bisa
melakukan insertion tapi juga deletion. Sama seperti pada Insertion, salah satu
keunggulan BST yaitu penghapusan dapat dilakukan terhadap target node, bukan terhadap 1 subtree . Berikut adalah langkah dalam melakukan deletion x.
- Jika x merupakan sebuah daun
maka x bisa langsung di delete dari BST.
- Jika x mempunyai satu child
maka delete x dan hubungkan child dari x ke parent dari x.
- Jika x mempunyai dua child maka node akan digantikan oleh node paling kiri
dari Sub Tree Kanan atau dapat juga digantikan oleh child paling kanan dari Sub
Tree Kiri.
https://www.geeksforgeeks.org/binary-search-tree-set-1-search-and-
insertion/https://www.mahirkoding.com/struktur-data-binary-search-tree-bst/
insertion/https://www.mahirkoding.com/struktur-data-binary-search-tree-bst/
Komentar
Posting Komentar