05 - Binary Search Tree - 2101664883 - Joseph Lazarus Joshua Refassy
Binary Search Tree
Binary Search Tree adalah aturan dimana left child dari parent selalu memiliki nilai lebih kecil dari nilai parent dan right child selalu memiliki nilai lebih besar dari parent.
Binary Search Tree mempunyai beberapa operator dasar:
- find(x) : cari x dalam BST -> sama saja dengan search <- menggunakan BST, search jadi mudah
- insert(x) : memasukkan x dalam BST
- remove(x) : menghapus x dalam BST
Aturan dalam Delete:
- Jika node adalah leaf, maka hapus saja
- Jika node yang ingin di delete masih memiliki anak setidaknya satu anak, maka delete saja node yang ingin di delete, lalu gantikan posisi yang di delete tadi dengan anak yang di delete.
- Jika node adalah parent yang memiliki dua anak, maka delete node yang ingin di delete, lalu cari pengganti untuk posisi node yang di delete. Cara carinya ialah lihat anak sebelah kiri lalu cari nilai node yang tertinggi dari sana, setelah itu gantikan nilai tertinggi dari node yang ada di left child dengan node yang telah di delete.
Berikut adalah contoh dari masing-masing operator dasar
Find (Search)
Insert
Binary Search Tree adalah aturan dimana left child dari parent selalu memiliki nilai lebih kecil dari nilai parent dan right child selalu memiliki nilai lebih besar dari parent.
Binary Search Tree mempunyai beberapa operator dasar:
- find(x) : cari x dalam BST -> sama saja dengan search <- menggunakan BST, search jadi mudah
- insert(x) : memasukkan x dalam BST
- remove(x) : menghapus x dalam BST
Aturan dalam Delete:
- Jika node adalah leaf, maka hapus saja
- Jika node yang ingin di delete masih memiliki anak setidaknya satu anak, maka delete saja node yang ingin di delete, lalu gantikan posisi yang di delete tadi dengan anak yang di delete.
- Jika node adalah parent yang memiliki dua anak, maka delete node yang ingin di delete, lalu cari pengganti untuk posisi node yang di delete. Cara carinya ialah lihat anak sebelah kiri lalu cari nilai node yang tertinggi dari sana, setelah itu gantikan nilai tertinggi dari node yang ada di left child dengan node yang telah di delete.
Berikut adalah contoh dari masing-masing operator dasar
Find (Search)
Insert
Step 1
Step 2
Step 3
Hasil
Remove (Delete)
Hapus (21)
Karena (21) tidak memiliki child alias leaf, maka hapus saja
Hapus (37)
Node dengan nilai tertinggi dari kiri Node yang ingin dihapus dijadikan pengganti
Hapus (30)
Nilai tertinggi dari left child yang akan dihapus menggantikan posisi yang akan dihapus






Komentar
Posting Komentar