Binary Search Tree
Binary Search Tree merupakan suatu struktur data binary tree yang menggunakan node sebagai dasarnya seperti halnya dengan linked list. Namun, BST ini digunakan untuk Fast Searching, Rapid Sorting, Easy Insertion, dan Deletion Data. Pada dasarnya, subtree sebelah kiri akan memiliki node yang nilainya lebih kecil daripada parent node, sedangkan sebelah kanan berisikan node yang memiliki nilai lebih tinggi daripada parent node.
Searching
Dalam mencari suatu nilai pada BST, pertama akan dibandingkan dengan nilai root, jika nilai yang dicari berada pada root, maka root adalah nilai yang dicari, namun jika nilai yang dicari lebih besar daripada root, maka akan mencari subtree sebelah kanan dari root node. Sebaliknya jika nilai yang dicari lebih kecil maka akan mencari subtree sebelah kiri dari root node.
Insertion
Memasukkan sebuah nilai baru pada binary tree akan selalu masuk ke bagian paling bawah (leaf). Dimulai dengan mencari nilai root sampai ke leaf node, dan jika nilai yang dimasukkan lebih kecil dari leaf node, maka angka yang dimasukkan akan berada di sebelah kiri leaf node, berlaku sebaliknya dengan nilai yang lebih besar.
Deletion
Ada beberapa kondisi dalam melakukan penghapusan dalam BST:
- Node yang akan dihapus adalah leaf node, dengan kata lain kita bisa langsung menghapus leaf node tersebut
- Node yang akan dihapus hanya memiliki 1 subtree, child node ini dicopy ke node yang akan dihapus, baru dilakukan penghapusan
- Node yang akan dihapus memilki 2 subtree, dapat dilakukan dengan 2 cara, yaitu dengan mengambil nilai maksimum dari sebelah kiri, atau dengan nilai minimum dari sebelah kanan.
Sumber:
Comments
Post a Comment