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