We present simple, fully dynamic and kinetic data structures, which are variants of a dynamic two-dimensional range tree, for maintaining the closest pair and all nearest neighbors for a set of n moving points in the plane; insertions and deletions of points are also allowed. If no insertions or deletions take place, the structure for the closest pair uses O(n log n) space, and processes O(n2 s+2(n) log n) critical events, each in O(log2 n) time. Here s is the maximum number of times where the distances between any two specific pairs of points can become equal, s(q) = s(q)/q, and s(q) is the maximum length of Davenport-Schinzel sequences of order s on q symbols. The dynamic version of the problem incurs a slight degradation in performance: If m n insertions and deletions are performed, the structure still uses O(n log n) space, and processes O(mns+2(n) log3 n) events, each in O(log3 n) time. Our kinetic data structure for all nearest neighbors uses O(n log2 n) space, and processes O(n...
Pankaj K. Agarwal, Haim Kaplan, Micha Sharir