import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.*; class TreeTraversalTest { @Test void test() { TreeTraversal.TreeOrders tt = new TreeTraversal.TreeOrders(); tt.key = new int[]{4, 2, 5, 1, 3}; tt.left = new int[]{1, 3, -1, -1, -1}; tt.right = new int[]{2, 4, -1, -1, -1}; assertEquals(5, tt.inOrder().size()); assertEquals(1, tt.inOrder().get(0)); assertEquals(2, tt.inOrder().get(1)); assertEquals(3, tt.inOrder().get(2)); assertEquals(4, tt.inOrder().get(3)); assertEquals(5, tt.inOrder().get(4)); assertEquals(5, tt.preOrder().size()); assertEquals(4, tt.preOrder().get(0)); assertEquals(2, tt.preOrder().get(1)); assertEquals(1, tt.preOrder().get(2)); assertEquals(3, tt.preOrder().get(3)); assertEquals(5, tt.preOrder().get(4)); assertEquals(5, tt.postOrder().size()); assertEquals(1, tt.postOrder().get(0)); assertEquals(3, tt.postOrder().get(1)); assertEquals(2, tt.postOrder().get(2)); assertEquals(5, tt.postOrder().get(3)); assertEquals(4, tt.postOrder().get(4)); } @Test void test1() { TreeTraversal.TreeOrders tt = new TreeTraversal.TreeOrders(); tt.key = new int[]{0, 10, 20, 30, 40, 50, 60, 70, 80, 90}; tt.left = new int[]{7, -1, -1, 8, 3, -1, 1, 5, -1, -1}; tt.right = new int[]{2, -1, 6, 9, -1, -1, -1, 4, -1, -1}; assertEquals(10, tt.inOrder().size()); assertEquals(50, tt.inOrder().get(0)); assertEquals(70, tt.inOrder().get(1)); assertEquals(80, tt.inOrder().get(2)); assertEquals(30, tt.inOrder().get(3)); assertEquals(90, tt.inOrder().get(4)); assertEquals(40, tt.inOrder().get(5)); assertEquals(0, tt.inOrder().get(6)); assertEquals(20, tt.inOrder().get(7)); assertEquals(10, tt.inOrder().get(8)); assertEquals(60, tt.inOrder().get(9)); assertEquals(10, tt.preOrder().size()); assertEquals(0, tt.preOrder().get(0)); assertEquals(70, tt.preOrder().get(1)); assertEquals(50, tt.preOrder().get(2)); assertEquals(40, tt.preOrder().get(3)); assertEquals(30, tt.preOrder().get(4)); assertEquals(80, tt.preOrder().get(5)); assertEquals(90, tt.preOrder().get(6)); assertEquals(20, tt.preOrder().get(7)); assertEquals(60, tt.preOrder().get(8)); assertEquals(10, tt.preOrder().get(9)); assertEquals(10, tt.postOrder().size()); assertEquals(50, tt.postOrder().get(0)); assertEquals(80, tt.postOrder().get(1)); assertEquals(90, tt.postOrder().get(2)); assertEquals(30, tt.postOrder().get(3)); assertEquals(40, tt.postOrder().get(4)); assertEquals(70, tt.postOrder().get(5)); assertEquals(10, tt.postOrder().get(6)); assertEquals(60, tt.postOrder().get(7)); assertEquals(20, tt.postOrder().get(8)); assertEquals(0, tt.postOrder().get(9)); } @Test void test2() { TreeTraversal.TreeOrders tt = new TreeTraversal.TreeOrders(); tt.key = new int[]{782521203, 839950857, 248660666, 696374696, 971981286}; tt.left = new int[]{4, -1, 3, -1, 1}; tt.right = new int[]{-1, -1, -1, -1, 2}; assertEquals(5, tt.inOrder().size()); assertEquals(839950857, tt.inOrder().get(0)); assertEquals(971981286, tt.inOrder().get(1)); assertEquals(696374696, tt.inOrder().get(2)); assertEquals(248660666, tt.inOrder().get(3)); assertEquals(782521203, tt.inOrder().get(4)); assertEquals(5, tt.preOrder().size()); assertEquals(782521203, tt.preOrder().get(0)); assertEquals(971981286, tt.preOrder().get(1)); assertEquals(839950857, tt.preOrder().get(2)); assertEquals(248660666, tt.preOrder().get(3)); assertEquals(696374696, tt.preOrder().get(4)); assertEquals(5, tt.postOrder().size()); assertEquals(839950857, tt.postOrder().get(0)); assertEquals(696374696, tt.postOrder().get(1)); assertEquals(248660666, tt.postOrder().get(2)); assertEquals(971981286, tt.postOrder().get(3)); assertEquals(782521203, tt.postOrder().get(4)); } }