finished s05 ex4
This commit is contained in:
parent
18750736b4
commit
c105ea5ca7
@ -66,4 +66,28 @@ public class TreeTraversal<T extends Comparable<T>> implements Traversal<T> {
|
||||
}
|
||||
}
|
||||
|
||||
public void interval(Comparable<T> min, Comparable<T> max, Visitor<T> v) {
|
||||
interval(root, min, max, v);
|
||||
}
|
||||
|
||||
private void interval(TreeNode<T> node, Comparable<T> min, Comparable<T> max, Visitor<T> v) {
|
||||
if (node != null) {
|
||||
|
||||
// only visit nodes that are in the interval
|
||||
if (node >= min && node <= max) {
|
||||
v.visit(root.element);
|
||||
}
|
||||
|
||||
// go in the direction of lower values (so left) until the min is hit
|
||||
if (node >= min) {
|
||||
interval(node.left, min, max, v);
|
||||
}
|
||||
|
||||
// go in the direction of higher values (so right) until the max is hit
|
||||
if (node <= max) {
|
||||
interval(node.right, min, max, v);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user