BAEL-1339 - Implementing a binary tree in Java

This commit is contained in:
Marcos
2017-12-07 23:37:09 +01:00
parent 4e39bfb945
commit a391ecf04f
2 changed files with 358 additions and 0 deletions

View File

@@ -0,0 +1,141 @@
package com.baeldung.tree;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
public class BinaryTreeTest {
@Test
public void givenABinaryTree_WhenAddElements_ThenTreeNotEmpty() {
BinaryTree bt = new BinaryTree();
bt.add(6);
bt.add(4);
bt.add(8);
bt.add(3);
bt.add(5);
bt.add(7);
bt.add(9);
assertTrue(!bt.isEmpty());
}
@Test
public void givenABinaryTree_WhenAddElements_ThenTreeContainsThoseElements() {
BinaryTree bt = new BinaryTree();
bt.add(6);
bt.add(4);
bt.add(8);
bt.add(3);
bt.add(5);
bt.add(7);
bt.add(9);
assertTrue(bt.containsNode(6));
assertTrue(bt.containsNode(4));
assertTrue(bt.containsNode(8));
assertTrue(bt.containsNode(3));
assertTrue(bt.containsNode(5));
assertTrue(bt.containsNode(7));
assertTrue(bt.containsNode(9));
assertFalse(bt.containsNode(1));
assertFalse(bt.containsNode(10));
}
@Test
public void givenABinaryTree_WhenDeletingElements_ThenTreeDoesNotContainThoseElements() {
BinaryTree bt = new BinaryTree();
bt.add(6);
bt.add(4);
bt.add(8);
bt.add(3);
bt.add(5);
bt.add(7);
bt.add(9);
assertTrue(bt.containsNode(9));
bt.delete(9);
assertFalse(bt.containsNode(9));
assertTrue(bt.containsNode(6));
bt.delete(6);
assertFalse(bt.containsNode(6));
assertTrue(bt.containsNode(4));
bt.delete(4);
assertFalse(bt.containsNode(4));
}
@Test
public void givenABinaryTree_WhenTraversingInOrder_ThenPrintValues() {
BinaryTree bt = new BinaryTree();
bt.add(6);
bt.add(4);
bt.add(8);
bt.add(3);
bt.add(5);
bt.add(7);
bt.add(9);
bt.traverseInOrder(bt.root);
}
@Test
public void givenABinaryTree_WhenTraversingPreOrder_ThenPrintValues() {
BinaryTree bt = new BinaryTree();
bt.add(6);
bt.add(4);
bt.add(8);
bt.add(3);
bt.add(5);
bt.add(7);
bt.add(9);
bt.traversePreOrder(bt.root);
}
@Test
public void givenABinaryTree_WhenTraversingPostOrder_ThenPrintValues() {
BinaryTree bt = new BinaryTree();
bt.add(6);
bt.add(4);
bt.add(8);
bt.add(3);
bt.add(5);
bt.add(7);
bt.add(9);
bt.traversePostOrder(bt.root);
}
@Test
public void givenABinaryTree_WhenTraversingLevelOrder_ThenPrintValues() {
BinaryTree bt = new BinaryTree();
bt.add(6);
bt.add(4);
bt.add(8);
bt.add(3);
bt.add(5);
bt.add(7);
bt.add(9);
bt.traverseLevelOrder();
}
}