We introduce dynamic smooth (a.k.a. balanced) compressed quadtrees with worst-case constant time updates in constant dimensions. We distinguish two versions of the problem. First, we show that quadtrees as a space-division data structure can be made smooth and dynamic subject to %DIFDELCMD < {\em %%% split and%DIFDELCMD < {\em %%% merge operations on the quadtree cells. Second, we show that quadtrees used to store a set of points in R^d can be made smooth and dynamic subject to %DIFDELCMD < {\em %%% insertions and%DIFDELCMD < {\em %%% deletions of points. The second version uses the first but must additionally deal with %DIFDELCMD < {\em %%% compression and%DIFDELCMD < {\em %%% alignment of quadtree components. In both cases our updates take 2^{O(d\log d )} time, except for the point location part in the second version which has a lower bound of \Theta (\log n)---but if a pointer ( %DIFDELCMD < {\em %%% finger ) to the correct quadtree cell is given, the rest of the updates take worst-case constant time. Our result implies that several classic and recent results (ranging from ray tracing to planar point location) in computational geometry which use quadtrees can deal with arbitrary point sets on a real RAM pointer machine.
We introduce dynamic smooth (a.k.a. balanced) compressed quadtrees with worst-case constant time updates in constant dimensions. We distinguish two versions of the problem. First, we show that quadtrees as a space-division data structure can be made smooth and dynamic subject to %DIFDELCMD < {\em %%% %DIFDELCMD < {\em %%% split and merge operations on the quadtree cells. Second, we show that quadtrees used to store a set of points in R^d can be made smooth and dynamic subject to %DIFDELCMD < {\em %%% %DIFDELCMD < {\em %%% insertions and deletions of points. The second version uses the first but must additionally deal with %DIFDELCMD < {\em %%% %DIFDELCMD < {\em %%% compression and alignment of quadtree components. In both cases our updates take 2^{O(d\log d )} time, except for the point location part in the second version which has a lower bound of \Theta (\log n)---but if a pointer ( %DIFDELCMD < {\em %%% finger ) to the correct quadtree cell is given, the rest of the updates take worst-case constant time. Our result implies that several classic and recent results (ranging from ray tracing to planar point location) in computational geometry which use quadtrees can deal with arbitrary point sets on a real RAM pointer machine.
D
split
D
and
R
merge
split and merge
D
insertions
D
and
R
deletions
insertions and deletions
D
compression
D
and
R
alignment
compression and alignment
R
finger
finger