Question
In this problem, you will write some Java code for simple operations on binary search trees where keys are integers. Assume you already have the
In this problem, you will write some Java code for simple operations on binary search trees where keys are integers. Assume you already have the following code and assume that the method bodies, even though not shown, are correct and implement the operations as we defined them in class.
public class BinarySearchTreeNode {
public int key; public BinarySearchTreeNode left; public BinarySearchTreeNode right;
}
public class BinarySearchTree {
private BinarySearchTreeNode root; public void insert(int key) { ... } public void delete(int key) { ... } public boolean find(int key) { ... }
}
(a) Add a method public int positiveKeySum() to the BinarySearchTree class that returns the sum of all non-negative keys in the tree. You will need an assistant/helper method.
(b) Add method public void deleteMax() to the BinarySearchTree class that deletes the maximum element in the tree (or does nothing if the tree has no elements).
(c) Add method public void printTree() to the BinarySearchTree class that iterates over the nodes to print then in decreasing order. So the tree produces the output "5 4 3 2 1". Note: You will need an assistant/helper method.
(d) Add method public void printPostorder() to the BinarySearchTree class that prints out the nodes of the tree according to a "postorder" traversal. So the tree produces the output "13254". Note: you will need an assistant/helper method.
(e) You have a binary search tree. Consider a leave l. B is the set of keys in the path p of l including the leave l and the root of the tree. A is the set of keys to the left of the path p. C is the set of keys to the right of the path p. Is the following statement true or false? Given any element a in A; b in B; c in C; a b c. Justify your answer.
Important Notes:
-
For this problem, you only need to submit the implementation of four methods in Java (positiveKeySum, deleteMin, printTree, and printPostorder). It is not required that you implement the main method.
-
In the part (e), you dont need to submit any implementation in Java and just you must answer the question.
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started