finished s05 ex4

This commit is contained in:
navid.sassan 2020-10-25 21:46:59 +01:00
parent 18750736b4
commit c105ea5ca7

View File

@ -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);
}
}
}
}