Skip to content

Commit cddeb50

Browse files
committed
Binary tree until now returns binarytree structure that includes parents
1 parent 3ac2f25 commit cddeb50

File tree

4 files changed

+76
-60
lines changed

4 files changed

+76
-60
lines changed

Diff for: binarytrees/src/main/java/ImplementInorderSpaceEfficient.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ public class ImplementInorderSpaceEfficient {
77
10.11
88
*/
99

10-
public static List<Integer> inorderTraversal(BinaryTree<Integer> tree) {
10+
public static List<Integer> inorderTraversal(BinaryTreeParent<Integer> tree) {
1111

1212
return Collections.emptyList();
1313
}

Diff for: binarytrees/src/test/java/ComputeSuccessorTest.java

+9-51
Original file line numberDiff line numberDiff line change
@@ -5,78 +5,36 @@
55
public class ComputeSuccessorTest {
66

77
private BinaryTreeParent<Integer> expected;
8-
private static BinaryTreeParent node;
8+
private static BinaryTreeParent<Integer> node;
99

1010
@Test
1111
public void findSuccessor1() throws Exception {
12-
BinaryTreeParent<Integer> tree = new BinaryTreeParent<>(0);
13-
tree.setLeft(new BinaryTreeParent<>(1));
14-
tree.setRight(new BinaryTreeParent<>(2));
15-
expected = tree;
16-
node = tree.left;
12+
expected = BinaryTreeUtil.getOddTreeWithParent();
13+
node = expected.left;
1714

1815
test(expected, node);
1916
}
2017

2118
@Test
2219
public void findSuccessor2() throws Exception {
23-
BinaryTreeParent<Integer> tree = new BinaryTreeParent<>(4);
24-
tree.setLeft(new BinaryTreeParent<>(2));
25-
tree.left.setLeft(new BinaryTreeParent<>(1));
26-
tree.left.setRight(new BinaryTreeParent<>(3));
27-
tree.setRight(new BinaryTreeParent<>(6));
28-
tree.right.setLeft(new BinaryTreeParent<>(5));
29-
tree.right.setRight(new BinaryTreeParent<>(7));
30-
expected = tree;
31-
node = tree.left.right;
20+
expected = BinaryTreeUtil.getFullTreeWithParent();
21+
node = expected.left.right;
3222

3323
test(expected, node);
3424
}
3525

3626
@Test
3727
public void findSuccessor3() throws Exception {
38-
BinaryTreeParent<Integer> tree = new BinaryTreeParent<>(314);
39-
tree.setLeft(new BinaryTreeParent<>(6));
40-
tree.left.setLeft(new BinaryTreeParent<>(271));
41-
tree.left.left.setLeft(new BinaryTreeParent<>(28));
42-
tree.left.left.setRight(new BinaryTreeParent<>(0));
43-
tree.left.setRight(new BinaryTreeParent<>(561));
44-
tree.left.right.setRight(new BinaryTreeParent<>(3));
45-
tree.left.right.right.setLeft(new BinaryTreeParent<>(17));
46-
tree.setRight(new BinaryTreeParent<>(6));
47-
tree.right.setLeft(new BinaryTreeParent<>(2));
48-
tree.right.left.setRight(new BinaryTreeParent<>(1));
49-
tree.right.left.right.setLeft(new BinaryTreeParent<>(401));
50-
tree.right.left.right.left.setRight(new BinaryTreeParent<>(641));
51-
tree.right.left.right.setRight(new BinaryTreeParent<>(257));
52-
tree.right.setRight(new BinaryTreeParent<>(271));
53-
tree.right.right.setRight(new BinaryTreeParent<>(28));
54-
expected = tree;
55-
node = tree.left.right.right;
28+
expected = BinaryTreeUtil.getFigureTenDotOneWithParent();
29+
node = expected.left.right.right;
5630

5731
test(expected, node);
5832
}
5933

6034
@Test
6135
public void findSuccessor4() throws Exception {
62-
BinaryTreeParent<Integer> tree = new BinaryTreeParent<>(19);
63-
tree.setLeft(new BinaryTreeParent<>(7));
64-
tree.left.setLeft(new BinaryTreeParent<>(3));
65-
tree.left.left.setLeft(new BinaryTreeParent<>(2));
66-
tree.left.left.setRight(new BinaryTreeParent<>(5));
67-
tree.left.setRight(new BinaryTreeParent<>(11));
68-
tree.left.right.setRight(new BinaryTreeParent<>(17));
69-
tree.left.right.right.setLeft(new BinaryTreeParent<>(13));
70-
tree.setRight(new BinaryTreeParent<>(43));
71-
tree.right.setLeft(new BinaryTreeParent<>(23));
72-
tree.right.left.setRight(new BinaryTreeParent<>(37));
73-
tree.right.left.right.setLeft(new BinaryTreeParent<>(29));
74-
tree.right.left.right.left.setRight(new BinaryTreeParent<>(31));
75-
tree.right.left.right.setRight(new BinaryTreeParent<>(41));
76-
tree.right.setRight(new BinaryTreeParent<>(47));
77-
tree.right.right.setRight(new BinaryTreeParent<>(53));
78-
expected = tree.right.left;
79-
node = tree;
36+
node = BinaryTreeUtil.getFigureFifteenDotOneWithParent();
37+
expected = node.right.left;
8038

8139
test(expected, node);
8240
}

Diff for: binarytrees/src/test/java/ImplementInorderSpaceEfficientTest.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,33 @@
88
public class ImplementInorderSpaceEfficientTest {
99

1010
private List<Integer> expected;
11-
private BinaryTree<Integer> tree;
11+
private BinaryTreeParent<Integer> tree;
1212

1313
@Test
1414
public void inorderTraversal1() throws Exception {
15-
expected = Arrays.asList(2,1,0);
16-
tree = BinaryTreeUtil.getOddTree();
15+
expected = Arrays.asList(1,0,2);
16+
tree = BinaryTreeUtil.getOddTreeWithParent();
1717

1818
test(expected, tree);
1919
}
2020

2121
@Test
2222
public void inorderTraversal2() throws Exception {
23-
expected = Arrays.asList(2,1,3,0,5,4,6);
24-
tree = BinaryTreeUtil.getFullTree();
23+
expected = Arrays.asList(1,2,3,4,5,6,7);
24+
tree = BinaryTreeUtil.getFullTreeWithParent();
2525

2626
test(expected, tree);
2727
}
2828

2929
@Test
3030
public void inorderTraversal3() throws Exception {
31-
expected = Arrays.asList(28,271,0,6,561,17,3,314,2,401,614,1,257,6,271,28);
32-
tree = BinaryTreeUtil.getFigureTenDotOne();
31+
expected = Arrays.asList(28,271,0,6,561,17,3,314,2,401,641,1,257,6,271,28);
32+
tree = BinaryTreeUtil.getFigureTenDotOneWithParent();
3333

3434
test(expected, tree);
3535
}
3636

37-
private void test(List<Integer> expected, BinaryTree<Integer> tree) {
37+
private void test(List<Integer> expected, BinaryTreeParent<Integer> tree) {
3838
assertEquals(expected, ImplementInorderSpaceEfficient.inorderTraversal(tree));
3939
}
4040

Diff for: utils/src/main/java/BinaryTreeUtil.java

+58
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ public static BinaryTree<Integer> getOddTree() {
2121
return tree;
2222
}
2323

24+
public static BinaryTreeParent<Integer> getOddTreeWithParent() {
25+
BinaryTreeParent<Integer> tree = new BinaryTreeParent<>(0);
26+
tree.setLeft(new BinaryTreeParent<>(1));
27+
tree.setRight(new BinaryTreeParent<>(2));
28+
return tree;
29+
}
30+
2431
public static BinaryTree<Integer> getFullTree() {
2532
BinaryTree<Integer> tree = new BinaryTree<>(4);
2633
tree.left = new BinaryTree<>(2);
@@ -32,6 +39,17 @@ public static BinaryTree<Integer> getFullTree() {
3239
return tree;
3340
}
3441

42+
public static BinaryTreeParent<Integer> getFullTreeWithParent() {
43+
BinaryTreeParent<Integer> tree = new BinaryTreeParent<>(4);
44+
tree.setLeft(new BinaryTreeParent<>(2));
45+
tree.left.setLeft(new BinaryTreeParent<>(1));
46+
tree.left.setRight(new BinaryTreeParent<>(3));
47+
tree.setRight(new BinaryTreeParent<>(6));
48+
tree.right.setLeft(new BinaryTreeParent<>(5));
49+
tree.right.setRight(new BinaryTreeParent<>(7));
50+
return tree;
51+
}
52+
3553
public static BinaryTree<Integer> getFullBST() {
3654
BinaryTree<Integer> tree = new BinaryTree<>(0);
3755
tree.left = new BinaryTree<>(1);
@@ -64,6 +82,26 @@ public static BinaryTree<Integer> getFigureTenDotOne() {
6482
return tree;
6583
}
6684

85+
public static BinaryTreeParent<Integer> getFigureTenDotOneWithParent() {
86+
BinaryTreeParent<Integer> tree = new BinaryTreeParent<>(314);
87+
tree.setLeft(new BinaryTreeParent<>(6));
88+
tree.left.setLeft(new BinaryTreeParent<>(271));
89+
tree.left.left.setLeft(new BinaryTreeParent<>(28));
90+
tree.left.left.setRight(new BinaryTreeParent<>(0));
91+
tree.left.setRight(new BinaryTreeParent<>(561));
92+
tree.left.right.setRight(new BinaryTreeParent<>(3));
93+
tree.left.right.right.setLeft(new BinaryTreeParent<>(17));
94+
tree.setRight(new BinaryTreeParent<>(6));
95+
tree.right.setLeft(new BinaryTreeParent<>(2));
96+
tree.right.left.setRight(new BinaryTreeParent<>(1));
97+
tree.right.left.right.setLeft(new BinaryTreeParent<>(401));
98+
tree.right.left.right.left.setRight(new BinaryTreeParent<>(641));
99+
tree.right.left.right.setRight(new BinaryTreeParent<>(257));
100+
tree.right.setRight(new BinaryTreeParent<>(271));
101+
tree.right.right.setRight(new BinaryTreeParent<>(28));
102+
return tree;
103+
}
104+
67105
public static BinaryTree<Integer> getFigureFifteenDotOne() {
68106
BinaryTree<Integer> tree = new BinaryTree<>(19);
69107
tree.left = new BinaryTree<>(7);
@@ -84,6 +122,26 @@ public static BinaryTree<Integer> getFigureFifteenDotOne() {
84122
return tree;
85123
}
86124

125+
public static BinaryTreeParent<Integer> getFigureFifteenDotOneWithParent() {
126+
BinaryTreeParent<Integer> tree = new BinaryTreeParent<>(19);
127+
tree.setLeft(new BinaryTreeParent<>(7));
128+
tree.left.setLeft(new BinaryTreeParent<>(3));
129+
tree.left.left.setLeft(new BinaryTreeParent<>(2));
130+
tree.left.left.setRight(new BinaryTreeParent<>(5));
131+
tree.left.setRight(new BinaryTreeParent<>(11));
132+
tree.left.right.setRight(new BinaryTreeParent<>(17));
133+
tree.left.right.right.setLeft(new BinaryTreeParent<>(13));
134+
tree.setRight(new BinaryTreeParent<>(43));
135+
tree.right.setLeft(new BinaryTreeParent<>(23));
136+
tree.right.left.setRight(new BinaryTreeParent<>(37));
137+
tree.right.left.right.setLeft(new BinaryTreeParent<>(29));
138+
tree.right.left.right.left.setRight(new BinaryTreeParent<>(31));
139+
tree.right.left.right.setRight(new BinaryTreeParent<>(41));
140+
tree.right.setRight(new BinaryTreeParent<>(47));
141+
tree.right.right.setRight(new BinaryTreeParent<>(53));
142+
return tree;
143+
}
144+
87145
public static BinaryTree<Integer> getFigureFifteenDotTwo() {
88146
BinaryTree<Integer> tree = new BinaryTree<>(108);
89147
tree.left = new BinaryTree<>(108);

0 commit comments

Comments
 (0)