DATA STRUCTURE PERTEMUAN 05

BINARY SEARCH TREE [ BST ]

BST digunakan untuk mempermudah user dalam mencari data.

BST mempunyari 3 Basic Operation :

–> find(x) = mencari x di dalam BST
–> insert(x) = masukkan x ke dalam BST
–> remove(x) = menghapus x dari BST
FIND
delete1

mencari angka 14 di atas, langkah-langkah :

1. Dimulai dari root. Root adalah angka 50, yang kita mau cari adalah angka 14 ( 14 < 50), maka ke kiri.
2. Di kiri ada 17, kita mencari 14 ( 14 < 17), maka ke kiri.
3. Di kiri ada 12, kita mencari 14 ( 14 >  12), maka ke kanan.
4. Di kanan ada 14, maka kita sudah menemukan data yang ingin dicari.
INSERT
Insert adalah memasukkan data baru ke dalam BST.
Steps untuk insertion:
1. Mulai dari root.
2. Check data yang mau di insert ke dalam BST. Kalau data lebih kecil dari root, maka akan ke kiri. Kalau data lebih besar dari root, maka akan ke kanan.
3. Temukan node yang kosong untuk dimasukan data, data yang selalu dimasukan akan selalu menjadi leaf.
delete2

Cara memasukan angka 11 :

1.  Mulai dari root. Root adalah 6, dan yang mau dimasukkan adalah 11 ( 11 >  6),maka ke kanan.
2. Di kanan ada 10, dan 10 < 11, maka ke kanan.
3. Di kanan nada 19, dan 19 > 11, maka ke kiri.
4. Di kiri tidak ada apa-apa, maka data baru tersebut akan membentuk leaf baru.
DELETE
Deletion adalah menghapus data yang sudah ada di dalam BST.
3 case yang perlu diperhatikan saat deletion:
1. Jika data yang mau di delete adalah leaf, maka tinggal delete data tersebut.
2. Jika data yang mau di delete adalah sebuah node yang memiliki 1 child, maka data tersebut akan di delete, dan child dari data tersebut akan naik dan menggantikan node.
3. Jika data yang mau di delete adalah sebuah node yang memiliki 2 child, maka cari node paling kiri dari child kanan nya. Delete data yang mau di delete, dan node paling kiri dari child kanan data yang di delete akan menggantikan posisi yang sudah di delete. Penggantinya bisa juga sebaliknya, yaitu node paling kanan dari child kiri nya.
delete3
Dari gambar, misalkan kita mau delete node 4. Langkah-langkah nya:

1. cari data yang mau di delete.

2. karena angka 4 adalah sebuah leaf, maka tinggal delete.
Reference :
1. http://www.mybodhizone.com/data_structures/mbz_DS_BST_insert.php
2. http://articles.leetcode.com/convert-sorted-array-into-balanced/
3. http://www.mybodhizone.com/data_structures/mbz_DS_BST_delete.php
This entry was posted in Uncategorized. Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *