diff options
| author | Jérémy Zurcher <jeremy@asynk.ch> | 2013-03-27 09:33:52 +0100 | 
|---|---|---|
| committer | Jérémy Zurcher <jeremy@asynk.ch> | 2013-11-15 17:38:45 +0100 | 
| commit | 6e5558c4c38957622216de24f2d115a0da90cce6 (patch) | |
| tree | 525337ad3a5b60ed856fccab22dc44378c2b5a9f /Algorithms/Part-I/5-KdTrees | |
| parent | 240299f06e5c2622677f2f0ba9254fef4f8906a0 (diff) | |
| download | coursera-6e5558c4c38957622216de24f2d115a0da90cce6.zip coursera-6e5558c4c38957622216de24f2d115a0da90cce6.tar.gz | |
Algorithms-I : 5-KdTrees: fix null pointer in KdTree
Diffstat (limited to 'Algorithms/Part-I/5-KdTrees')
| -rw-r--r-- | Algorithms/Part-I/5-KdTrees/KdTree.java | 13 | 
1 files changed, 10 insertions, 3 deletions
| diff --git a/Algorithms/Part-I/5-KdTrees/KdTree.java b/Algorithms/Part-I/5-KdTrees/KdTree.java index 73d9a90..bcf4609 100644 --- a/Algorithms/Part-I/5-KdTrees/KdTree.java +++ b/Algorithms/Part-I/5-KdTrees/KdTree.java @@ -100,7 +100,7 @@ public class KdTree      // does the tree contain the point p?      public boolean contains(Point2D p)      { -        if (root == null) return false; +        if ((p == null) || (root == null)) return false;          return get(root, p, true);      } @@ -113,7 +113,11 @@ public class KdTree              cmp = Point2D.Y_ORDER.compare(p, n.p);          if (cmp < 0) +        { +            if (n.left == null) return false;              return get(n.left, p, !vsplit); +        } +        if (n.right == null) return false;          return get(n.right, p, !vsplit);      } @@ -163,6 +167,8 @@ public class KdTree      {          Stack<Point2D> stack = new Stack<Point2D>(); +        if ((rect == null) || (root == null)) return stack; +          range(root, rect, stack, true);          return stack; @@ -191,10 +197,11 @@ public class KdTree      // a nearest neighbor in the tree to p; null if tree is empty      public Point2D nearest(Point2D p)      { -        if (p == null) return null; -        if (root == null) return null; +        if ((p == null) || (root == null)) return null; +          NearestChampion ncp = new NearestChampion(null, Double.MAX_VALUE);          nearest(root, p, ncp, true); +          return ncp.p;      } | 
