🌴Praktikum 1
Implementasi Binary Search Tree menggunakan Linked List
Last updated
Implementasi Binary Search Tree menggunakan Linked List
Last updated
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,
Buatlah class Node
, BinaryTree
dan BinaryTreeMain
.
Di dalam class Node
, tambahkan atribut data
, left
dan right
, serta konstruktor default dan berparameter.
Di dalam class BinaryTree
, tambahkan atribut root
.
Tambahkan konstruktor default dan method isEmpty()
di dalam class BinaryTree
.
Tambahkan method add()
di dalam class BinaryTree
. 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()
dan traversePostOrder()
. 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 method main()
.
Compile dan jalankan class BinaryTreeMain
untuk mendapatkan simulasi jalannya program tree yang telah dibuat.
Amati hasil running tersebut.
Mengapa dalam binary search tree proses pencarian data bisa lebih efektif dilakukan dibanding binary tree biasa?
Apa fungsi atribut left
dan right
pada class Node
?
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?