We consider preprocessing a set S of n points in convex position in the plane into a data structure supporting queries of the following form: given a point q and… Click to show full abstract
We consider preprocessing a set S of n points in convex position in the plane into a data structure supporting queries of the following form: given a point q and a directed line $$\ell $$ℓ in the plane, report the point of S that is farthest from (or, alternatively, nearest to) the point q among all points to the left of line $$\ell $$ℓ. We present two data structures for this problem. The first data structure uses $$O(n^{1+\varepsilon })$$O(n1+ε) space and preprocessing time, and answers queries in $$O(2^{1/\varepsilon }\log n)$$O(21/εlogn) time, for any $$0< \varepsilon < 1$$0<ε<1. The second data structure uses $$O(n \log ^3 n)$$O(nlog3n) space and polynomial preprocessing time, and answers queries in $$O(\log n)$$O(logn) time. These are the first solutions to the problem with $$O(\log n)$$O(logn) query time and $$o(n^2)$$o(n2) space. The second data structure uses a new representation of nearest- and farthest-point Voronoi diagrams of points in convex position. This representation supports the insertion of new points in clockwise order using only $$O(\log n)$$O(logn) amortized pointer changes, in addition to $$O(\log n)$$O(logn)-time point-location queries, even though every such update may make $$\Theta (n)$$Θ(n) combinatorial changes to the Voronoi diagram. This data structure is the first demonstration that deterministically and incrementally constructed Voronoi diagrams can be maintained in o(n) amortized pointer changes per operation while keeping $$O(\log n)$$O(logn)-time point-location queries.
               
Click one of the above tabs to view related content.