From c105ea5ca7e8645b64a29897593862afa359890c Mon Sep 17 00:00:00 2001 From: "navid.sassan" Date: Sun, 25 Oct 2020 21:46:59 +0100 Subject: [PATCH] finished s05 ex4 --- .../main/java/ch/zhaw/ads/TreeTraversal.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/05/src/main/java/ch/zhaw/ads/TreeTraversal.java b/05/src/main/java/ch/zhaw/ads/TreeTraversal.java index 8ba0910..b9016c6 100644 --- a/05/src/main/java/ch/zhaw/ads/TreeTraversal.java +++ b/05/src/main/java/ch/zhaw/ads/TreeTraversal.java @@ -66,4 +66,28 @@ public class TreeTraversal> implements Traversal { } } + public void interval(Comparable min, Comparable max, Visitor v) { + interval(root, min, max, v); + } + + private void interval(TreeNode node, Comparable min, Comparable max, Visitor 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); + } + } + } + }