Skip to content

Commit e35aff3

Browse files
committed
Binary Tree implementation
1 parent 97f2a69 commit e35aff3

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

  • java8/src/main/java/com/shekhargulati/ninetynine_problems/java8/_00_random/tree
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.shekhargulati.ninetynine_problems.java8._00_random.tree;
2+
3+
import java.util.Objects;
4+
5+
public class Tree<T> {
6+
7+
T item;
8+
Tree<T> left;
9+
Tree<T> right;
10+
Tree<T> parent;
11+
}
12+
13+
class TreeOperations {
14+
15+
public <T extends Comparable<? super T>> Tree<T> search(Tree<T> tree, T item) {
16+
if (Objects.equals(tree.item, item)) {
17+
return tree;
18+
}
19+
if (tree.item.compareTo(item) < 0) {
20+
return search(tree.left, item);
21+
} else {
22+
return search(tree.right, item);
23+
}
24+
}
25+
26+
public <T> T min(Tree<T> tree) {
27+
if (tree.left == null) {
28+
return tree.item;
29+
}
30+
return min(tree.left);
31+
}
32+
33+
public <T> T max(Tree<T> tree) {
34+
if (tree.right == null) {
35+
return tree.item;
36+
}
37+
return max(tree.right);
38+
}
39+
}

0 commit comments

Comments
 (0)