Algorithms and Data Structures for External Memory
Algorithms and Data Structures for External Memory
Algorithms and Data Structures for External Memory
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
110 Spatial <strong>Data</strong> <strong>Structures</strong> <strong>and</strong> Range Search<br />
The above bootstrapping approach also yields dynamic EM segment<br />
trees with optimal query <strong>and</strong> update bound <strong>and</strong> O(nlog B N)-block<br />
space usage.<br />
Stabbing queries are important because, when combined with onedimensional<br />
range queries, they provide a solution to dynamic interval<br />
management, in which one-dimensional intervals can be inserted<br />
<strong>and</strong> deleted, <strong>and</strong> intersection queries can be per<strong>for</strong>med. These operations<br />
support indexing of one-dimensional constraints in constraint<br />
databases. Other applications of stabbing queries arise in graphics <strong>and</strong><br />
GIS. For example, Chiang <strong>and</strong> Silva [106] apply the EM interval tree<br />
structure to extract at query time the boundary components of the isosurface<br />
(or contour) of a surface. A data structure <strong>for</strong> a related problem,<br />
which in addition has optimal output complexity, appears in [10].<br />
Range-max <strong>and</strong> stabbing-max queries are studied in [13, 15].<br />
12.4 Bootstrapping <strong>for</strong> Three-Sided Orthogonal<br />
2-D Range Search<br />
Arge et al. [50] provide another example of the bootstrapping paradigm<br />
by developing an optimal dynamic EM data structure <strong>for</strong> three-sided<br />
orthogonal 2-D range searching (see Figure 12.1(c)) that meets all<br />
three design criteria. In internal memory, the optimal structure is the<br />
priority search tree [251], which answers three-sided range queries in<br />
O(logN + Z) CPU time, does updates in O(logN) CPU time, <strong>and</strong><br />
uses O(N) space. The EM structure of Arge et al. [50] is an externalization<br />
of the priority search tree, using a weight-balanced B-tree as<br />
the underlying base tree. Each node in the base tree corresponds to a<br />
one-dimensional range of x-values, <strong>and</strong> its Θ(B) children correspond<br />
to subranges consisting of vertical slabs. Each node v contains a small<br />
substructure called a child cache that supports three-sided queries. Its<br />
child cache stores the “Y-set” Y (w) <strong>for</strong> each of the Θ(B) children w<br />
of v. The Y-set Y (w) <strong>for</strong> child w consists of the highest Θ(B) points in<br />
w’s slab that are not already stored in the child cache of some ancestor<br />
of v. There are thus a total of Θ(B 2 ) points stored in v’s child cache.<br />
We can answer a three-sided query of the <strong>for</strong>m [x1,x2] × [y1,+∞)by<br />
visiting a set of nodes in the base tree, starting with the root. For each