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.

Referensi:




Komentar

Postingan populer dari blog ini

AVL Tree

Linked List