READ QUESTION CORRECTLY package chapter07;
public class BSTNode
{
private int info;
private BSTNode left;
private BSTNode right;
public BSTNode(int info)
{
this.info = info;
this.left = null;
this.right = null;
}
public void setInfo(int info)
{
this.info = info;
}
public int getInfo()
{
return this.info;
}
public void setRight(BSTNode right)
{
this.right = right;
}
public BSTNode getRight()
{
READ QUESTION CORRECTLY package chapter07; public class BSTNode { private int info; private BSTNode left; private BSTNode right; public BSTNode(int info) { this.info = info; this.left = null; this.right = null; } public void setInfo(int info) { this.info = info; } public int getInfo() { return this.info; } public void setRight(BSTNode right) { this.right = right; } public BSTNode getRight() {
Related questions
Question
READ QUESTION CORRECTLY
package chapter07;
public class BSTNode
{
private int info;
private BSTNode left;
private BSTNode right;
public BSTNode(int info)
{
this.info = info;
this.left = null;
this.right = null;
}
public void setInfo(int info)
{
this.info = info;
}
public int getInfo()
{
return this.info;
}
public void setRight(BSTNode right)
{
this.right = right;
}
public BSTNode getRight()
{
return this.right;
}
public void setLeft(BSTNode left)
{
this.left = left;
}
public BSTNode getLeft()
{
return this.left;
}
}
package chapter07;
public class BinarySearchTree
{
protected BSTNode root;
protected boolean success;
public BinarySearchTree()
{
this.root = null;
}
public boolean contains(int value)
{
BSTNode curr = root;
while(curr != null)
{
if(value == curr.getInfo())
{
return true;
}
else if(value < curr.getInfo())
{
curr = curr.getLeft();
}
else
{
curr = curr.getRight();
}
}
return false;
}
public boolean add(int value)
{
root = add(value, root);
return success;
}
private BSTNode add(int value, BSTNode curr)
{
if(curr == null)
{
curr = new BSTNode(value);
success = true;
}
else if(value < curr.getInfo())
{
curr.setLeft(add(value, curr.getLeft()));
}
else if(value > curr.getInfo())
{
curr.setRight(add(value, curr.getRight()));
}
else
{
success = false;
}
return curr;
}
public void preOrder()
{
System.out.print("Pre Order: ");
preOrder(root);
System.out.println();
}
private void preOrder(BSTNode curr)
{
if(curr != null)
{
System.out.print(curr.getInfo() + " ");
preOrder(curr.getLeft());
preOrder(curr.getRight());
}
}
public void inOrder()
{
//Complete this method as required in the homeowrk instructions
}
public void postOrder()
{
//Complete this method as required in the homeowrk instructions
}
public int countLeaves()
{
//Complete this method as required in the homeowrk instructions
}
public int size()
{
//Complete this method as required in the homeowrk instructions
}
public int height()
{
//Complete this method as required in the homeowrk instructions
}
public boolean remove(int target)
{
root = remove(target, root);
return success;
}
private BSTNode remove(int target, BSTNode curr)
{
if(curr == null)
{
success = false;
}
else if(target < curr.getInfo())
{
curr.setLeft(remove(target, curr.getLeft()));
}
else if(target > curr.getInfo())
{
curr.setRight(remove(target, curr.getRight()));
}
else
{
curr = removeNode(curr);
success = true;
}
return curr;
}
private BSTNode removeNode(BSTNode curr)
{
if(curr.getLeft() == null)
{
return curr.getRight();
}
else if(curr.getRight() == null)
{
return curr.getLeft();
}
else
{
int data = getRightMostData(curr.getLeft());
curr.setInfo(data);
curr.setLeft(remove(data, curr.getLeft()));
return curr;
}
}
private int getRightMostData(BSTNode subtree)
{
BSTNode temp = subtree;
while (temp.getRight() != null)
{
temp = temp.getRight();
}
return temp.getInfo();
}
}
Expert Solution
This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
Step by step
Solved in 4 steps with 3 images