We present a new multi-dimensional data structure, which we call the skip quadtree (for point data in R 2 ) or the skip octree (for point data in R d , with constant d > 2). Our data structure combines the best features of two well-known data structures, in that it has the well-defined "box"-shaped regions of region quadtrees and the logarithmic-height search and update hierarchical structure of skip lists. Indeed, the bottom level of our structure is exactly a region quadtree (or octree for higher dimensional data). We describe efficient algorithms for inserting and deleting points in a skip quadtree, as well as fast methods for performing point location, approximate range, and approximate nearest neighbor queries. are contained in a given query region. We are interested in this paper in data structures for multidimensional point sets that are dynamic, in that they allow for fast point insertion and deletion, as well as efficient, in that they use linear space and allow for fast query times. • k-d trees [10]: regions are defined by hyperrectangles in R d , which are subdivided into two hyperrectangles using an axisperpendicular cutting hyperplane through the median point, for any regions containing more than two points. So the underlying tree can be made a balanced binary tree with log n depth for a static set of points. Unfortunately, the regions can have arbitrarily large aspect ratios, which can adversely affect the efficiencies of some queries. Although some variants were proposed to help, such as by cutting along the longest side instead of along each axis recursively [15] , they only improve the aspect ratios experimentally or statistically. In addition, maintaining an efficient k-d tree subject to point insertions and removal is non-trivial. • compressed quad/octrees [2, [11] [12] [13] : regions are defined in the same way as in a quadtree or octree (depending on the dimensionality), but paths in the tree consisting of nodes with only one non-empty child are compressed to single edges.
Another data structure for efficient storage and fast query times is the skip quadtree REF , which combines the best features of region quadtrees and skip lists.
The skip quadtree: a simple dynamic data structure for multidimensional data
SCG '05
Mathematics Computer Science