Skip to main content

Binary Search Tree


Binary Search Tree atau biasanya disingkat menjadi BST itu adalah Struktur data Binary Tree yang mempunyai node dan yang berstruktur yaitu (Subtree kiri dan Subtree kanan harus binary tree):
-          Subtree sebelah kiri hanya terdiri dari node yang lebih kecil dari parents dan rootnya
-          Subtree sebelah kanan hanya terdiri dari node yang lebih besar dari parents dan rootnya

Binary Search Tree juga mempunyai kelebihan yaitu lebih cepat dama mencari, lebih cepat untuk sorting data dan juga lebih cepat dan lebih mudah untuk insert data dan delete data.

Berikut adalah contoh dari Binary search tree :



Didalam Binary Search Tree kita dapat melakukan Search, Insert dan juga delete:




Search:
Untuk search dalam Binary Search Tree, pertama-tama harus disamakan dengan root apabila nilainya sama dengan root maka return root-nya. Apabila nilai nya lebih besar daripada root maka cari di sebelah kanan dari Subtreenya, apabila lebih kecil daripada root-nya maka cari disebelah kiri dari rootnya.

Contoh codenya adalah sebagai berikut:





Insert:
Data baru yang di-insert selalu berada di leaf dalam binary tree. Sama seperti search, kita cari apabila datanya lebih kecil daripada root makacari secara recursive ke sebelah kiri dan apabila lebih besar maka kesebalah kanan. Setelah di search dan apabila sudah ketemu tempat yang memenuhi persyaratan maka data barunya menjadi leaf child dari nodenya.

Contoh codenya adalah sebagai berikut:







Delete:
Data yang ingin di-delete dapat berupa leaf, parent yang mempunyai satu child atau parent yang mempunyai dua child. Apabila yang ingin dihapus hanya leaf maka tinggal hapus saja, apabila ynag dihapus parent yang mempunyai satu child maka tinggal copy child-nya ke node dan hapus parentnya, dan apabila yang ingin dihapus parent yang mempunyai dua anak maka cari penerus dari parent tersebut setelah itu maka tinggal hapus dan replace dengan penerus dari parent yang sudah ditemukan

Contoh codenya adalah sebagai berikut:






Comments

Popular posts from this blog

Heap dan Tries

Heap and Tries Heap itu pada dasarnya adalah BST (Binary Search Tree) yang memenuhi psayarat dari properti heap. Heap juga dapat dibilang implementasi efisien dari tipe abstrak dengan antrian prioritas. Ada 3 tipe heap, yaitu : Min Heap Dalam min heap, setiap node di atas lebih kecil dari pada childrennya. Contohnya seperti dibawah ini, Untuk insert, urutannya selalu dari kiri baru ke kanan. Sebagai contoh apabila di insert angka 14 maka seperti dibawah ini, Untuk deletion, nilai terakhir dinakkan ke atas dan melakukan heapifi apabila lebih kecil, sebagi contoh apabila root dihapus maka seperti ini, Max Heap Max hepa adalah kebalikan daripada min heap, Jadi node yang diatas lebih besar daripada childrennya, contohnya seperti berikut ini, Untuk insert sama seperti min heap semuanya dimulai dari sebalah kiri, sebagai contoh apabila di insert angka 2 maka jadi seperti, Untuk deletiosn juga sama seperti min heap jadi apabila di ha

RANGKUMAN DATA STRUCTURE DARI PERTEMUAN AWAL

Nama : Muhamad Faqih NIM : 2301887931 Kelas : CB01 Lecturer : Ferdinand Ariandy Luwinda (D4522) dan Henry Chong (D4460) SUMMARY DATA STRUCTURE DARI PERTEMUAN AWAL Linked List II 1. Circular single Linked list Single linked list adalah satu variabel pointer untuk menyimpan data dengan metode linked list. Data disimpan ke dalam node, setiap node memiliki pointer untuk menunjuk ke node berikutnya. Nah, kalau Circular single linked list itu sama seperti single linked list tetapi setiap node awalnya menyambung dengan node akhir seperti lingkaran, selalu menyambung. Ini adalah ilustrasi perbedaan single linked list (atas) dan circular single linked list(bawah) 2. Doubly linked list Adalah Linked list yang mempunya dua pointer yaitu pointer prev dan next. Pointer prev digunakan untuk menunjukkan ke data sebelumnya dan sebaliknya kalau pointer next menunjukkan ke data selanjutnya Contoh code untuk double linked list