🌴Praktikum 1
Implementasi Binary Search Tree menggunakan Linked List
Deskripsi
Pada percobaan ini akan diimplementasikan Binary Search Tree dengan operasi dasar, dengan menggunakan array (praktikum 2) dan linked list (praktikum 1). Sebelumnya, akan dibuat class Node, dan Class BinaryTree. Perhatikan class diagram berikut,
Langkah Percobaan
Buatlah class
Node
,BinaryTree
danBinaryTreeMain
.Di dalam class
Node
, tambahkan atributdata
,left
danright
, serta konstruktor default dan berparameter.
Di dalam class
BinaryTree
, tambahkan atributroot
.
Tambahkan konstruktor default dan method
isEmpty()
di dalam classBinaryTree
.
Tambahkan method
add()
di dalam classBinaryTree
. Di bawah ini proses penambahan node tidak dilakukan secara rekursif, agar lebih mudah dilihat alur proses penambahan node dalam tree. Jika dilakukan dengan proses rekursif, penulisan kode akan lebih efisien.
Tambahkan method
find()
.
Tambahkan method
traversePreOrder()
,traverseInOrder()
dantraversePostOrder()
. Method traverse digunakan untuk mengunjungi dan menampilkan node-node dalam tree, baik dalam mode pre-order, in-order maupun post-order.
Tambahkan method
getSuccessor()
. Method ini akan digunakan ketika proses penghapusan node yang memiliki 2 child.
Tambahkan method
delete()
. Di dalam method delete tambahkan pengecekan apakah tree kosong, dan jika tidak cari posisi node yang akan di hapus. Kemudian tambahkan proses penghapusan terhadap node current yang telah ditemukan.
Buka class
BinaryTreeMain
dan tambahkan methodmain()
.
Compile dan jalankan class
BinaryTreeMain
untuk mendapatkan simulasi jalannya program tree yang telah dibuat.Amati hasil running tersebut.
Pertanyaan
Mengapa dalam binary search tree proses pencarian data bisa lebih efektif dilakukan dibanding binary tree biasa?
Apa fungsi atribut
left
danright
pada classNode
?Simak pertanyaan berikut,
Apa kegunaan dari atribut
root
di dalam class BinaryTree?Ketika objek tree pertama kali dibuat, apa nilai dari
root
?
Ketika tree masih kosong, dan akan ditambahkan sebuah node baru, proses apa yang akan terjadi?
Perhatikan method
add()
, di dalamnya terdapat baris program seperti di bawah ini. Jelaskan secara detil untuk apa baris program tersebut?
Last updated