Dynamic point location in general subdivisions

The <italic>dynamic planar point location problem</italic> is the task of maintaining a dynamic set <italic>S</italic> of <italic>n</italic> non-intersecting, except possibly at endpoints, line segments in the plane under the following operations: <list><item>•Locate(<italic>q</italic> point): Report the segment immediately above <italic>q</italic>, i.e., the first segment intersected by an upward vertical ray starting at <italic>q</italic>; </item><item>•Insert(<italic>s</italic> segment): Add segment <italic>s</italic> to the collection <italic>S</italic> segments; </item><item>•Delete(<italic>s</italic> segment): Remove segment <italic>s</italic> from the collection <italic>S</italic> of segments. </item></list>We present a solution which requires space <italic>O</italic>(<italic>n</italic>), has query and insertion time <italic>O</italic>(log <italic>n</italic> loglog <italic>n</italic>) and deletion time <italic>O</italic>(log<supscrpt>2</supscrpt> <italic>n</italic>). A query time below <italic>O</italic>(log<supscrpt>2</supscrpt> <italic>n</italic>) was previously only known for monotone subdivisions and horizontal segments and required non-linear space.