Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Let S be a set of n points in the plane with distinct integer x- and ycoordinate

ID: 659173 • Letter: L

Question

Let S be a set of n points in the plane with distinct integer x- and ycoordinates.
Let T be a complete binary tree storing the points from S
at its external nodes, such that the points are ordered left-to-right by increasing
x-coordinates. For each node v in T, let S(v) denote the subset of
S consisting of points stored in the subtree rooted at v. For the root r of
T, define top(r) to be the point in S = S(r) with maximum y-coordinate.
For every other node v, define top(r) to be the point in S with highest ycoordinate
in S(v) that is not also the highest y-coordinate in S(u), where
u is the parent of v in T (if such a point exists). Such labeling turns T into
a priority search tree. Describe a linear-time algorithm for turning T into
a priority search tree

In C++.

Explanation / Answer

Linear-time algorithm:

step-1: To insert points into integer X and Y co-ordinates

step 2: To store elements into T and ordered left-to-right

step 3: Denote subset S points in subtree rooted at V

step 4: Its normal form $mathcal{O}(1)$ (sometimes $mathcal{O}(log n)$)

step 5: To return the pointer to the minimum or maximum S = S(r).

step 6:  To find minimum and maximum co-ordinates $mathcal{O}(1)$ time.

step 7: End state(exit)