Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Need Help Finishing this Code: public class BinaryTree <E extends Comparable<? s

ID: 3693740 • Letter: N

Question

Need Help Finishing this Code:
public class BinaryTree <E extends Comparable<? super E>>
private class BinaryNode
private E value;
private BinaryNode right;
private BinaryNode left;
public BinaryNode(E valueIn) {
value = valueIn;
}
private int size = 0;
private BinaryNode root = null;
private boolean addToParent(BinaryNode parentNode, BinaryNode addNode)
int compare = parentNode.value.compareTo(addNode.value);
boolean wasAdded = false;
if (compare > 0) {
// if parent has no left node, add new node as left
if (parentNode.left == null) {
parentNode.left = __________;
wasAdded = true;
} else
{
// otherwise, add to parentNode's left (recursive)
wasAdded = addToParent(parentNode.__________, addNode);
}
}
else if (compare < 0) {
// if parent has no right node, add new node as right
if (parentNode.right == null) {
parentNode.__________ = addNode;
wasAdded = true;
} else
{
// otherwise, add to parentNode's right (recursive)
wasAdded = addToParent(parentNode.__________, addNode);
}
}
return wasAdded;
public boolean add(E value) {
}
BinaryNode node = new BinaryNode(value);
boolean wasAdded = true;
if (root == null) {
root = node;
}
else {
wasAdded = __________(root, node);
}
if (wasAdded) {
size++;
}
return wasAdded;
public static void main (String args[]) {
BinaryTree<Integer> tree = new BinaryTree<Integer>();
tree.add(3);
tree.add(2);
tree.add(5);
tree.add(4);
tree.add(6);
tree.add(8);
tree.add(1);
}
public boolean remove(E value) {
}
if (root == null) {
return false; }
if (root.value.compareTo(value) == 0) {
if (root.left == null) {
root = root.right;
} else if (root.right == null) {
root = root.left; }
else {
BinaryNode formerRight = root.right;
root = root.left;
addToParent(root, formerRight); }
size--;
return true; }
return removeSubNode(root, value);
private boolean removeSubNode(BinaryNode parent, E value) {
}
int compareParent = parent.value.compareTo(value);
BinaryNode branch = (compareParent > 0)? parent.___ : parent.___;
if (branch == null) {
return false;
}
if (branch.value.compareTo(value) == 0) {
BinaryNode replacement;
if (branch.left == null) {
replacement = branch.right;
}
else if (branch.right == null)
{
replacement = branch.left;
}
else {
BinaryNode formerRight = branch.right;
replacement = branch.left;
addToParent(replacement, formerRight);
}
if (compareParent > 0)
{
parent.__________ = replacement;
}
else {
parent.__________ = replacement;
}
size--;
return true;
}
return removeSubNode(branch, value);
public int size()
{
return size;
}
public void clear()
{
root = null;
size = __;
}

Explanation / Answer

public class BinaryTree <E extends Comparable<? super E>>
private class BinaryNode
private E value;
private BinaryNode right;
private BinaryNode left;
public BinaryNode(E valueIn) {
value = valueIn;
}
private int size = 0;
private BinaryNode root = null;
private boolean addToParent(BinaryNode parentNode, BinaryNode addNode)

{
int compare = parentNode.value.compareTo(addNode.value);
boolean wasAdded = false;
if (compare > 0) {
// if parent has no left node, add new node as left
if (parentNode.left == null) {
parentNode.left = addNode;
wasAdded = true;
} else
{
// otherwise, add to parentNode's left (recursive)
wasAdded = addToParent(parentNode.left, addNode);
}
}
else if (compare < 0) {
// if parent has no right node, add new node as right
if (parentNode.right == null) {
parentNode.right = addNode;
wasAdded = true;
} else
{
// otherwise, add to parentNode's right (recursive)
wasAdded = addToParent(parentNode.right, addNode);
}
}
return wasAdded;

}
public boolean add(E value) {
BinaryNode node = new BinaryNode(value);
boolean wasAdded = true;
if (root == null) {
root = node;
}
else {
wasAdded = addToParent(root, node);
}
if (wasAdded) {
size++;
}
return wasAdded;

}
public static void main (String args[]) {
BinaryTree<Integer> tree = new BinaryTree<Integer>();
tree.add(3);
tree.add(2);
tree.add(5);
tree.add(4);
tree.add(6);
tree.add(8);
tree.add(1);
}
public boolean remove(E value) {

if (root == null) {
return false; }
if (root.value.compareTo(value) == 0) {
if (root.left == null) {
root = root.right;
} else if (root.right == null) {
root = root.left; }
else {
BinaryNode formerRight = root.right;
root = root.left;
addToParent(root, formerRight); }
size--;
return true; }
return removeSubNode(root, value);

}
private boolean removeSubNode(BinaryNode parent, E value) {

int compareParent = parent.value.compareTo(value);
BinaryNode branch = (compareParent > 0)? parent.left : parent.right;
if (branch == null) {
return false;
}
if (branch.value.compareTo(value) == 0) {
BinaryNode replacement;
if (branch.left == null) {
replacement = branch.right;
}
else if (branch.right == null)
{
replacement = branch.left;
}
else {
BinaryNode formerRight = branch.right;
replacement = branch.left;
addToParent(replacement, formerRight);
}
if (compareParent > 0)
{
parent.left = replacement;
}
else {
parent.right = replacement;
}
size--;
return true;
}
return removeSubNode(branch, value);

}
public int size()
{
return size;
}
public void clear()
{
root = null;
size = 0;
}

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote