0% menganggap dokumen ini bermanfaat (0 suara)
94 tayangan3 halaman

Modul Praktikum - 08 - Binary Search Tree

Dokumen ini membahas tentang Binary Search Tree (BST) yang merupakan struktur data berbasis node dengan property bahwa sub-tree kiri hanya berisi nilai lebih kecil dari root dan sub-tree kanan hanya berisi nilai lebih besar dari root. Dokumen ini juga menjelaskan operasi dasar pada BST seperti insert, delete, dan search.

Diunggah oleh

Akbar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
94 tayangan3 halaman

Modul Praktikum - 08 - Binary Search Tree

Dokumen ini membahas tentang Binary Search Tree (BST) yang merupakan struktur data berbasis node dengan property bahwa sub-tree kiri hanya berisi nilai lebih kecil dari root dan sub-tree kanan hanya berisi nilai lebih besar dari root. Dokumen ini juga menjelaskan operasi dasar pada BST seperti insert, delete, dan search.

Diunggah oleh

Akbar
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 3

BINARY SEARCH TREE

1. Pengertian BST
Binary Search Tree merupakan struktur data Tree yang berbasis node yang memiliki
property sebagai berikut:
• Sub-tree kiri dari sebuah node hanya berisi node dengan nilai yang lebih kecil dari
node root.
• Sub-tree kanan dari sebuah node hanya berisi node dengan nilai yang lebih besar
dari node root.
• Sub-tree kanan dan kiri masing-masing juga harus berupa Binary Search Tree.
Membuat Binary Search Tree caranya adalah sebagai berikut:
1) Masukkan elemen pertama dari daftar sebagai root.
2) Elemen selanjutnya jika lebih kecil dari root, masukkan sebagai root subtree kiri.
3) Jika elemen lebih besar dari root, maka masukkan sebagai root subtree kanan.
4) Masukkan semua elemen sampai daftar elemen terakhir.
2. Operasi BST
a. Insert
Node baru di BST selalu diinsert sebagai leaf. Insert BST harus dicek terlebih dulu
root nodenya, jika node lebih kecil dari root node, maka akan ditambahkan di sub-
tree kiri, dan sebaliknya. Langkah-langkahnya adalah sebagai berikut:
1) Setel bagian data ke nilai dan atur pointer kiri dan kanan Tree, arahkan ke
NULL.
2) Jika item yang akan diinsert akan menjadi elemen pertama, maka kiri dan
kanan akan menunjuk ke NULL.
3) Jika tidak cek apakah item tersebut lebih kecil dari root node, jika lebih kecil
maka lakukan operasi insert di bagian kiri root secara rekursif.
4) Jika item lebih besar, maka lakukan di bagian kanan root.
b. Delete
Untuk menghapus sebuah node BST, ada 3 kasus yang memungkinkan terjadi:
1) Node yang akan dihapus adalah leaf node. Kasus ini paling sederhana untuk
menghapus sebuah node BST. Node yang dihapus akan diganti dengan NULL
dan bebaskan ruang memori yang dialokasikan.
2) Node yang akan dihapus hanya memiliki satu child node. Pada kasus ini, node
yang dihapus memiliki 1 child node. Jika node yang akan dihapus memiliki
satu anak, maka hapus node tersebut dan tempatkan anak dari node tersebut
pada posisi node yang dihapus.
3) Node yang akan dihapus memiliki dua child node. Pada kasus ini, node yang
dihapus memiliki 2 child node, ketentuannya adalah sebagai berikut:
• Temukan urutan penerus dari node yang akan dihapus.
• Ganti node tersebut dengan penerus urutan sampai node target
ditempatkan di leaf.
• Ganti node dengan NULL.
Penerus inorder diperlukan ketika child kanan dari node tidak kosong. Kita
dapat mendapatkan penerus inorder dengan menemukan elemen minimum
di child node kanan.
c. Search
Operasi searching merupakan menemukan elemen atau node tertentu dalam BST.
Operasi searching mudah karena elemen BST disimpan dalam keadaan urut. Jika
nilai di bawah root, maka tidak mungkin berada di sub-tree bagian kanan, dan
sebaliknya. Langkah-langkahnya adalah sebagai berikut:
1) Bandingkan elemen yang dicari dengan elemen root, jika cocok maka
kembalikan lokasi node.
2) Jika tidak, maka cek apakah elemen pencarian lebih besar atau lebih kecil dari
root.
3) Jika lebih kecil, pindah ke sub-tree kiri, jika lebih besar pindah ke sub-tree
kanan.
4) Ulangi prosedur di atas secara rekursif hingga kecocokan ditemukan.
5) Jika elemen tidak ditemukan, maka kembalikan NULL.

3. Contoh Program

Anda mungkin juga menyukai