Created
November 8, 2016 01:27
-
-
Save jjlumagbas/ff96cb233aae14386df2254b8b7e8224 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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; | |
| } | |
| } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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