public class MyTree{ private TreeNode root; public MyTree(){ root=null; } public
ID: 3703832 • Letter: P
Question
public class MyTree{
private TreeNode root;
public MyTree(){
root=null;
}
public void remove(int data){
if (root == null)
return false;
else{
if (root.getValue() == value) {
BSTNode auxRoot = new BSTNode(0);
auxRoot.setLeftChild(root);
boolean result = root.remove(value, auxRoot);
root = auxRoot.getLeft();
return result;
} else {
return root.remove(value, null);
}
}
public void printReverse(){
//implement this method to print data in descending order
}
public void display(){
//implement to display the tree structure
}
public boolean isEmpty(){ return root==null;}
public int size(){
return sizeHelper(root);
}
private int sizeHelper(TreeNode node){
if(node==null) return 0;
else return 1+sizeHelper(node.getLeft())+sizeHelper(node.getRight());
}
public boolean search(int data){
return searchHelper(root, data);
}
private boolean searchHelper(TreeNode node, int data){
if(node==null) return false;
if(node.getData()==data) return true;
else if(node.getData()<data)
return searchHelper(node.getRight(),data);
else
return searchHelper(node.getLeft(), data);
}
public void add(int data){
root=addHelper(root, data);
}
private TreeNode addHelper(TreeNode node, int data){
if(node==null) node=new TreeNode(data);
else if(data<=node.getData()) // or call compareTo mehtod
node.setLeft(addHelper(node.getLeft(), data));
else
node.setRight(addHelper(node.getRight(), data));
return node;
}
public void printInorder(){
printHelper(root);
}
private void printHelper(TreeNode node){
if(node!=null){
printHelper(node.getLeft());
System.out.println(node.getData());
printHelper(node.getRight());
}
}
Question: I'm not sure how to implement the printReverse method and display the tree form.
Could you show me the methods please? Thanks!
Explanation / Answer
import java.util.Stack; public class MyTree{ private TreeNode root; public MyTree(){ root=null; } public void remove(int data) { if (root == null) return false; else { if (root.getValue() == value) { BSTNode auxRoot = new BSTNode(0); auxRoot.setLeftChild(root); boolean result = root.remove(value, auxRoot); root = auxRoot.getLeft(); return result; } else { return root.remove(value, null); } } } public void printReverse() { Stack data = new Stack(); printReverseHelper(data, root); while (!data.isEmpty()) { System.out.println(data.pop()); } } private void printReverseHelper(Stack data, TreeNode node) { if (node != null) { printReverseHelper(node.getLeft()); data.push(node.getData()); printReverseHelper(node.getRight()); } } public void display() { printHelper(root); } public boolean isEmpty() { return root == null; } public int size() { return sizeHelper(root); } private int sizeHelper(TreeNode node) { if (node == null) return 0; else return 1 + sizeHelper(node.getLeft()) + sizeHelper(node.getRight()); } public boolean search(int data) { return searchHelper(root, data); } private boolean searchHelper(TreeNode node, int data) { if (node == null) return false; if (node.getData() == data) return true; else if (node.getData()Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.