Skip to content

Instantly share code, notes, and snippets.

@jjlumagbas
Created November 8, 2016 01:27
Show Gist options
  • Save jjlumagbas/ff96cb233aae14386df2254b8b7e8224 to your computer and use it in GitHub Desktop.
Save jjlumagbas/ff96cb233aae14386df2254b8b7e8224 to your computer and use it in GitHub Desktop.
public class MyBinarySearchTree {
private MyTreeNode root;
private int size;
public MyBinarySearchTree() {
this.root = null;
size = 0;
}
public void add(Integer data) {
}
public void remove(Integer data) {
}
public boolean contains(Integer data) {
return contains(root, data);
}
private boolean contains(MyTreeNode root, Integer data) {
if (root == null) {
return false;
} else {
if (root.getData() < data) {
return contains(root.getLeft(), data);
} else if(root.getData() > data) {
return contains(root.getRight(), data);
} else {
return true;
}
}
}
public int size() {
return size;
}
private class MyTreeNode {
private Integer data;
private MyTreeNode left;
private MyTreeNode right;
private MyTreeNode parent;
public MyTreeNode(Integer data) {
this.data = data;
this.left = null;
this.right = null;
this.parent = null;
}
public MyTreeNode(Integer data, MyTreeNode left, MyTreeNode right, MyTreeNode parent) {
this.data = data;
this.left = left;
this.right = right;
this.parent = parent;
}
public Integer getData() {
return data;
}
public void setData(Integer data) {
this.data = data;
}
public MyTreeNode getLeft() {
return left;
}
public void setLeft(MyTreeNode left) {
this.left = left;
}
public MyTreeNode getRight() {
return right;
}
public void setRight(MyTreeNode right) {
this.right = right;
}
public MyTreeNode getParent() {
return parent;
}
public void setParent(MyTreeNode parent) {
this.parent = parent;
}
}
}
import junit.framework.TestCase;
import org.junit.Test;
public class MyBinarySearchTreeTest extends TestCase {
MyBinarySearchTree tree;
@Override
protected void setUp() throws Exception {
tree = new MyBinarySearchTree();
}
@Test
public void testAdd() throws Exception {
tree.add(15);
assertTrue(tree.contains(15));
}
@Test
public void testRemove() throws Exception {
tree.add(15);
tree.add(20);
tree.remove(15);
assertFalse(tree.contains(15));
assertTrue(tree.contains(20));
}
@Test
public void testContains() throws Exception {
tree.add(5);
tree.add(10);
tree.add(30);
tree.add(5);
tree.add(20);
tree.add(40);
assertEquals(true, tree.contains(5));
assertEquals(false, tree.contains(16));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment