Binary Search Tree (BST)

Pada blog sebelumnya saya sudah membahas mengenai Binary Tree. Sekarang kita akan membahas mengenai materi selanjutnya, yaitu Binary Search Tree (BST).



Binary Search Tree (BST) adalah struktur data yang mengadopsi konsep Binary Tree namun terdapat aturan bahwa setiap clild node sebelah kiri selalu lebih kecil nilainya dari pada root node. Begitu pula sebaliknya, setiap child node sebelah kanan selalu lebih besar nilainya daripada root node. Jadi, Binary Search Tree adalah proses searching berbasis binary tree.



Tujuan membedakan kiri dan kanan sesuai besaran nilainya adalah untuk memberikan efiesiensi terhadap proses searching sehingga proses search akan lebih cepat.



Sifat Binary Tree: 
- Setiap child node sebelah kiri harus lebih kecil nilainya daripada root nodenya.
- Setiap child node sebelah kanan harus lebih besar nilainya daripada root nodenya.



3 jenis cara untuk melakukan penelusuran data (traversal) pada BST :
- PreOrder

a. Cetak data pada root

b. Secara rekursif mencetak seluruh data pada subpohon kiri

c. Secara rekursif mencetak seluruh data pada subpohon kanan


- InOrder

a. Secara rekursif mencetak seluruh data pada subpohon kiri

b. Cetak data pada root

c. Secara rekursif mencetak seluruh data pada subpohon kanan

- Post Order

a. Secara rekursif mencetak seluruh data pada subpohon kiri

b. Secara rekursif mencetak seluruh data pada subpohon kanan

c. Cetak data pada root





Insert BST

Ketika insert sebuah  node baru perlu diperhatikan operasi pencarian posisi yang sesuai. Dalam hal ini node baru tersebut akan menjadi daun/leaf.




Delete BST

Operasi delete memiliki 3 kemungkinan : 
- Delete terhadap node tanpa anak/child (leaf/daun) : node dapat langsung dihapus
- Delete terhadap node dengan satu anak/child : maka node anak akan menggantikan posisinya.
- Delete terhadap node dengan dua anak/child : maka node akan digantikan oleh node paling kiri dari Sub Tree Kanan atau dapat juga digantikan oleh anak paling kanan dari Sub Tree Kiri.



Contoh delete BST:

1. Node (32) : dapat langsung dihapus sehingga akan dihasilkan tree sbb.



2. Node (8) : node dengan satu child




3. Node (72) : node dengan 2 child

Node akan digantikan oleh anak paling kanan dari Sub Tree Kiri (node(60))


Atau anak paling kiri dari Sub Tree Kanan (node(74))




Dibuat Oleh:
Nama : Sheila Gracia Angelina
NIM : 2301857456


Sumber:
1. https://www.mahirkoding.com/struktur-data-binary-search-tree-bst/
2. http://www.nblognlife.com/2014/12/binary-search-tree-bst-tree-lanjutan.html

Comments

Popular posts from this blog

Linked List, Stack, Queue

Summary & Review 1