package hw1;
public class BinaryTreeNode {
private Comparable data;
private BinaryTreeNode left;
private BinaryTreeNode right;
private BinaryTreeNode root;
public BinaryTreeNode (Comparable data) {
this.data = data;
}
public BinaryTreeNode () {
}
public Object getData() {
return data;
}
public void setData(Comparable data) {
this.data = data;
}
public BinaryTreeNode getLeft() {
return left;
}
public void setLeft(BinaryTreeNode left) {
this.left = left;
}
public BinaryTreeNode getRight() {
return right;
}
public void setRight(BinaryTreeNode right) {
this.right = right;
return;
}
public BinaryTreeNode getRoot() {
return root;
}
public void setRoot(BinaryTreeNode root) {
this.root = root;
}
public BinaryTreeNode insert(Comparable o){
BinaryTreeNode result = new BinaryTreeNode(o);
if (root == null) {
root = result;
} else {
BinaryTreeNode dummy = root;
insertHelper(o,dummy);
}
return result;
}
private void insertHelper (Comparable o, BinaryTreeNode root) {
if (o.compareTo(root.data) < 0) {
if (root.left == null) {
root.left = new BinaryTreeNode(o);
} else {
insertHelper (o, root.left);
}
} else {
if (root.right == null) {
root.right = new BinaryTreeNode(o);
} else {
insertHelper (o, root.right);
}
}
}
}