One of the classic data structures for storing point sets in R2 is the priority search tree, introduced by McCreight in 1985. We show that this data structure can be made in-place, i.e., it can be stored in an array such that each entry stores only one point of the point set and no entry is stored in more than one location of that array. It combines a binary search tree with a heap. We show that all the standard query operations can be performed within the same time bounds as for the original priority search tree, while using only O(1) extra space. We introduce the min-max priority search tree which is a combination of a binary search tree and a min-max heap. We show that all the standard queries which can be done in two separate versions of a priority search tree can be done with a single min-max priority search tree. As an application, we present an in-place algorithm to enumerate all maximal empty axis-parallel rectangles amongst points in a rectangular region R in R2 in O(mlogn) time with O(1) extra space, where m is the total number of maximal empty rectangles.

Additional Metadata
Keywords In-place algorithm, Maximum empty rectangle, Min-max priority search tree, Three-sided orthogonal range query
Persistent URL dx.doi.org/10.1016/j.comgeo.2012.09.007
Journal Computational Geometry
Citation
De, M. (Minati), Maheshwari, A, Nandy, S.C. (Subhas C.), & Smid, M. (2013). An in-place min-max priority search tree. In Computational Geometry (Vol. 46, pp. 310–327). doi:10.1016/j.comgeo.2012.09.007