augmenting data structures advanced algorithms & data structures lecture theme 07 – part i...

Post on 14-Dec-2015

227 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Augmenting Data Structures

Advanced Algorithms & Data Structures

Lecture Theme 07 – Part I

Prof. Dr. Th. Ottmann

Summer Semester 2006

2

Augmentation is a process of extending a data structure in order to support additional

functionality. It consists of four steps:

1. Choose an underlying data structure.

2. Determine the additional information to be maintained in the underlying data

structure.

3. Verify that the additional information can be maintained for the basic modifying

operations on the underlying data structure.

4. Develop new operations.

Augmentation

Process

3

Examples for Augmenting DS

• Dynamic order statistics: Augmenting binary search trees by size information

• D-dimensional range trees: Recursive construction of (static) d-dim range trees

• Min-augmented dynamic range trees: Augmenting 1-dim range trees by min-

information

• Interval trees

• Priority search trees

4

Examples for Augmenting DS

• Dynamic order statistics: Augmenting binary search trees by size information

• D-dimensional range trees: Recursive construction of (static) d-dim range trees

• Min-augmented dynamic range trees: Augmenting 1-dim range trees by min-

information

• Interval trees

• Priority search trees

5

Problem: Given a set S of numbers that changes under insertions and deletions,

c

o

n

s

t

r

u

c

t

a

d

a

t

a

s

t

r

u

c

t

u

r

e

t

o

s

t

o

r

e

S

t

h

a

t

c

a

n

b

e

u

p

d

a

t

e

d

i

n

O

(

l

o

g

n

)

t

i

m

e

a

n

d

t

h

a

t

c

a

n

r

e

p

o

r

t

t

h

e

k

-

t

h

o

r

d

e

r

s

t

a

t

i

s

t

i

c

f

o

r

a

n

y

k

i

n

O

(

l

o

g

n

)

t

i

m

e

.

51 85

1334

227

14

48

5

S

Dynamic Order Statistics

6

Binary

Search

Trees and

Order

Statistics

1

5 13

7

17

19

37

25

33

49

18

7

Binary

Search

Trees and

Order

Statistics

1

5 13

7

17

19

37

25

33

49

18

R

e

t

r

i

e

v

i

n

g

a

n

e

l

e

m

e

n

t

w

i

t

h

a

g

i

v

e

n

r

a

n

k

:

F

o

r

a

g

i

v

e

n

i

,

f

i

n

d

t

h

e

i

-

t

h

s

m

a

l

l

e

s

t

k

e

y

i

n

t

h

e

s

e

t

.

D

e

t

e

r

m

i

n

i

n

g

t

h

e

r

a

n

k

o

f

a

n

e

l

e

m

e

n

t

:

F

o

r

a

g

i

v

e

n

(

p

o

i

n

t

e

r

t

o

a

)

k

e

y

k

,

d

e

t

e

r

m

i

n

e

t

h

e

r

a

n

k

o

f

k

i

n

t

h

e

s

e

t

o

f

k

e

y

s

.

8

E

v

e

r

y

n

o

d

e

v

s

t

o

r

e

s

t

w

o

p

i

e

c

e

s

o

f

i

n

f

o

r

m

a

t

i

o

n

:

I

t

s

k

e

y

T

h

e

n

u

m

b

e

r

o

f

i

t

s

d

e

s

c

e

n

d

a

n

t

s

(

T

h

e

s

i

z

e

o

f

t

h

e

s

u

b

t

r

e

e

w

i

t

h

r

o

o

t

v

)

Augmenting the

Data

Structure

4

17

21

33

48

51

73

92

81

9

1241

1 1

1

1

2

2 4

4 6

11

9

Find the rank of key x in the tree

w

i

t

h

r

o

o

t

n

o

d

e

v

:

Rank(v, x)

1 if x = key(v)

2 then return 1 + size(left(v))

3 if x < key(v)

4 then return Rank(left(v), x)

5 else return 1 + size(left(v)) +

R

a

n

k

(

r

i

g

h

t

(

v

)

,

x

)

How

To

Determine

The

Rank of an

Element

4

17

21

33

48

51

73

92

81

9

1241

1 1

1

1

2

2 4

4 6

11

10

How to

Find the k-th

Order

Statistic

Find (a pointer to) the node containing the

k-th smallest key in the subtree rooted

at node v.

Select(v, k)

1

i

f

k

=

s

i

z

e

(

l

e

f

t

(

v

)

)

+

1

2

t

h

e

n

r

e

t

u

r

n

v

3

i

f

k

s

i

z

e

(

l

e

f

t

(

v

)

)

4

t

h

e

n

r

e

t

u

r

n

S

e

l

e

c

t

(

l

e

f

t

(

v

)

,

k

)

5

e

l

s

e

r

e

t

u

r

n

S

e

l

e

c

t

(

r

i

g

h

t

(

v

)

,

k

1

s

i

z

e

(

l

e

f

t

(

v

)

)

)

4

17

21

33

48

51

73

92

81

9

1241

1 1

1

1

2

2 4

4 6

11

11

Maintaining

Subtree

Sizes

Under Insertions

4

17

21

33

48

51

73

92

81

9

1241

1 1

1

1

2

2 4

4 6

11

I

n

s

e

r

t

o

p

e

r

a

t

i

o

n

I

n

s

e

r

t

n

o

d

e

a

s

i

n

t

o

a

s

t

a

n

d

a

r

d

b

i

n

a

r

y

s

e

a

r

c

h

t

r

e

e

.

A

d

d

1

t

o

t

h

e

s

u

b

t

r

e

e

s

i

z

e

o

f

e

v

e

r

y

a

n

c

e

s

t

o

r

o

f

t

h

e

n

e

w

n

o

d

e

.

12

Maintaining

Subtree

Sizes

Under Insertions

4

17

21

33

48

51

73

92

81

9

1241

1 1

1

1

2

2 4

4 6

11

641

I

n

s

e

r

t

o

p

e

r

a

t

i

o

n

I

n

s

e

r

t

n

o

d

e

a

s

i

n

t

o

a

s

t

a

n

d

a

r

d

b

i

n

a

r

y

s

e

a

r

c

h

t

r

e

e

A

d

d

1

t

o

t

h

e

s

u

b

t

r

e

e

s

i

z

e

o

f

e

v

e

r

y

a

n

c

e

s

t

o

r

o

f

t

h

e

n

e

w

n

o

d

e

13

Maintaining

Subtree

Sizes

Under Insertions

4

17

21

33

48

51

73

92

81

9

1241

1 1

1

1

3

2 5

4 7

12

641

I

n

s

e

r

t

o

p

e

r

a

t

i

o

n

I

n

s

e

r

t

n

o

d

e

a

s

i

n

t

o

a

s

t

a

n

d

a

r

d

b

i

n

a

r

y

s

e

a

r

c

h

t

r

e

e

A

d

d

1

t

o

t

h

e

s

u

b

t

r

e

e

s

i

z

e

o

f

e

v

e

r

y

a

n

c

e

s

t

o

r

o

f

t

h

e

n

e

w

n

o

d

e

14

Maintaining

Subtree

Sizes

Under

Deletions

D

e

l

e

t

e

o

p

e

r

a

t

i

o

n

D

e

l

e

t

e

n

o

d

e

a

s

f

r

o

m

a

s

t

a

n

d

a

r

d

b

i

n

a

r

y

s

e

a

r

c

h

t

r

e

e

S

u

b

t

r

a

c

t

1

f

r

o

m

t

h

e

s

u

b

t

r

e

e

s

i

z

e

o

f

e

v

e

r

y

a

n

c

e

s

t

o

r

o

f

t

h

e

d

e

l

e

t

e

d

n

o

d

e

15

Maintaining

Subtree

Sizes

Under

Rotations

s1

s2s3

s4 s5

s1

s3s5

s4

s5 + s3 + 1

16

Theorem: There exists a data structure to represent a dynamically changing set S of numbers with the following properties:

• The data structure can be updated in

O(log n) time after every insertion or

deletion into or from S.

• The data structure allows us to

determine the rank of an element or to

find the element with a given rank in

O(log n) time.

• The data structure occupies O (n)

space.

Dynamic

Order

Statistics—Summary

17

Examples for Augmenting DS

• Dynamic order statistics: Augmenting binary search trees by size information

• D-dimensional range trees: Recursive construction of (static) d-dim range trees

• Min-augmented dynamic range trees: Augmenting 1-dim range trees by min-

information

• Interval trees

• Priority search trees

18

4-Sided

Range

Queries

19

4-Sided

Range

Queries

Goal: Build a static data structure of size O(n log n) that can answer 4-sided range queries in O(log2 n + k) time.

20

Orthogonal d-dimensional Range Search

Build a static data structure for a set P of n points in d-space that supports d-dim range

queries:

d-dim range query: Let R be a d-dim orthogonal hyperrectangle, given by

d ranges [x1, x1‘], …, [xd, xd‘]:

Find all points p = (p1, …, pd) P such that x1 ≤ p1≤ x1‘,…,xd ≤ pd ≤ xd.

Special cases:

1-dim range query: 2-dim range query:

x1

x1

x1‘

x1‘

x2‘

x2

21

1-dim Range Search

Standard binary search trees support also 1-dim range queries:

37

18

99

12 23

21

81

74 90

55

42 61

49

68

30 80

22

1-dim Range Search

Leaf-search-tree:

37

18

99

12 23

21

81

74 90

55

42 61

49

68

30 80

21

1812

49

4237 6861

55

8174 9990

23

23

1-dim Range Tree

A 1-dim range tree is a leaf-search tree for the x-values (points on the line).

Internal nodes have routers guiding the search to the leaves: We choose the maximal

x-value in left subtree as router.

Range search: In order to find all points in a given range [l, r] search for the boundary

values l and r.

This is a forked path; report all leaves of subtrees rooted at nodes v in between the

two search paths whose parents are on the search path.

24

The selected subtrees

l r

Split node

25

Canonical Subsets

The canonical subset of node v, P(v), is the subset of points of P stored at the leaves

of the subtree rooted at v.

If v is a leaf, P(v) is the point stored at this leaf.

If v is the root, P(v) = P.

Observations:

For each query range [l, r] the set of points with x-coordinates falling into this range is

the disjoint union of O(log n) canonical subsets of P.

A node v is called an umbrella node for the range [l, r], if the x-coordinates of all

points in its canonical subset P(v) fall into the range, but this does not hold for the

predecessor of v.

All k points stored at the leaves of a tree rooted at node v, i.e. the k points in a

canonical subset P(v), can be reported in time O(k).

26

1-dim Range Tree: Summary

Let P be a set of n points in 1-dim space.

P can be stored in a balanced binary leaf-search tree such that the following holds:

Construction time: O(n log n)

Space requirement: O(n)

Insertion of a point: O(log n) time

Deletion of a point: O(log n) time

1-dim-range-query: Reporting all k points falling into a given query range can be

carried out in time O(log n + k).

The performance of 1-dim range trees does not depend on the chosen balancing

scheme!

27

2-di

m

Range tree:

The

Pri

mary

Structure

• S

t

a

t

i

c

b

i

n

a

r

y

l

e

a

f

-

s

e

a

r

c

h

t

r

e

e

o

v

e

r

x

-

c

o

o

r

d

i

n

a

t

e

s

o

f

p

o

i

n

t

s

.

28

The

Pri

mary

Structure

• S

t

a

t

i

c

b

i

n

a

r

y

l

e

a

f

-

s

e

a

r

c

h

t

r

e

e

o

v

e

r

x

-

c

o

o

r

d

i

n

a

t

e

s

o

f

p

o

i

n

t

s

.

29

The

Pri

mary

Structure

• S

t

a

t

i

c

b

i

n

a

r

y

l

e

a

f

-

s

e

a

r

c

h

t

r

e

e

o

v

e

r

x

-

c

o

o

r

d

i

n

a

t

e

s

o

f

p

o

i

n

t

s

.

30

The

Pri

mary

Structure

• S

t

a

t

i

c

b

i

n

a

r

y

l

e

a

f

-

s

e

a

r

c

h

t

r

e

e

o

v

e

r

x

-

c

o

o

r

d

i

n

a

t

e

s

o

f

p

o

i

n

t

s

.

• E

v

e

r

y

l

e

a

f

r

e

p

r

e

s

e

n

t

s

a

v

e

r

t

i

c

a

l

s

l

a

b

o

f

t

h

e

p

l

a

n

e

.

31

The

Pri

mary

Structure

• Static binary leaf-search tree over x-coordinates of points.

• Every leaf represents a vertical slab of the plane.

• Every internal node represents a slab that is the union of the slabs of its children.

32

The

Pri

mary

Structure

• Static binary leaf-search tree over x-coordinates of points.

• Every leaf represents a vertical slab of the plane.

• Every internal node represents a slab that is the union of the slabs of its children.

33

The

Pri

mary

Structure

• Static binary leaf-search tree over x-coordinates of points.

• Every leaf represents a vertical slab of the plane.

• Every internal node represents a slab that is the union of the slabs of its children.

34

The

Pri

mary

Structure

• Static binary leaf-search tree over x-coordinates of points.

• Every leaf represents a vertical slab of the plane.

• Every internal node represents a slab that is the union of the slabs of its children.

35

Answering 2-di

m

Range

Queries

• N

o

r

m

a

l

i

z

e

q

u

e

r

i

e

s

t

o

e

n

d

o

n

s

l

a

b

b

o

u

n

d

a

r

i

e

s

.

• Q

u

e

r

y

d

e

c

o

m

p

o

s

e

s

i

n

t

o

O

(

l

o

g

n

)

s

u

b

q

u

e

r

i

e

s

.

• E

v

e

r

y

s

u

b

q

u

e

r

y

i

s

a

1

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

q

u

e

r

y

o

n

y

-

c

o

o

r

d

i

n

a

t

e

s

o

f

a

l

l

p

o

i

n

t

s

i

n

t

h

e

s

l

a

b

o

f

t

h

e

c

o

r

r

e

s

p

o

n

d

i

n

g

n

o

d

e

.

(

x

-

c

o

o

r

d

i

n

a

t

e

s

d

o

n

o

t

m

a

t

t

e

r

!

)

36

The selected subtrees

l r

Split node

37

Answering

Queries

• N

o

r

m

a

l

i

z

e

q

u

e

r

i

e

s

t

o

e

n

d

o

n

s

l

a

b

b

o

u

n

d

a

r

i

e

s

.

• Q

u

e

r

y

d

e

c

o

m

p

o

s

e

s

i

n

t

o

O

(

l

o

g

n

)

s

u

b

q

u

e

r

i

e

s

.

• E

v

e

r

y

s

u

b

q

u

e

r

y

i

s

a

1

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

q

u

e

r

y

o

n

y

-

c

o

o

r

d

i

n

a

t

e

s

o

f

a

l

l

p

o

i

n

t

s

i

n

t

h

e

s

l

a

b

o

f

t

h

e

c

o

r

r

e

s

p

o

n

d

i

n

g

n

o

d

e

.

(

x

-

c

o

o

r

d

i

n

a

t

e

s

d

o

n

o

t

m

a

t

t

e

r

!

)

38

Answering

Queries

• N

o

r

m

a

l

i

z

e

q

u

e

r

i

e

s

t

o

e

n

d

o

n

s

l

a

b

b

o

u

n

d

a

r

i

e

s

.

• Q

u

e

r

y

d

e

c

o

m

p

o

s

e

s

i

n

t

o

O

(

l

g

n

)

s

u

b

q

u

e

r

i

e

s

.

• E

v

e

r

y

s

u

b

q

u

e

r

y

i

s

a

1

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

q

u

e

r

y

o

n

y

-

c

o

o

r

d

i

n

a

t

e

s

o

f

a

l

l

p

o

i

n

t

s

i

n

t

h

e

s

l

a

b

o

f

t

h

e

c

o

r

r

e

s

p

o

n

d

i

n

g

n

o

d

e

.

(

x

-

c

o

o

r

d

i

n

a

t

e

s

d

o

n

o

t

m

a

t

t

e

r

!

)

39

Answering

Queries

• N

o

r

m

a

l

i

z

e

q

u

e

r

i

e

s

t

o

e

n

d

o

n

s

l

a

b

b

o

u

n

d

a

r

i

e

s

.

• Q

u

e

r

y

d

e

c

o

m

p

o

s

e

s

i

n

t

o

O

(

l

o

g

n

)

s

u

b

q

u

e

r

i

e

s

.

• E

v

e

r

y

s

u

b

q

u

e

r

y

i

s

a

1

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

q

u

e

r

y

o

n

y

-

c

o

o

r

d

i

n

a

t

e

s

o

f

a

l

l

p

o

i

n

t

s

i

n

t

h

e

s

l

a

b

o

f

t

h

e

c

o

r

r

e

s

p

o

n

d

i

n

g

n

o

d

e

.

(

x

-

c

o

o

r

d

i

n

a

t

e

s

d

o

n

o

t

m

a

t

t

e

r

!

)

40

2-dim Range Tree

v

Tx

Ty(v)

Ix(v)

x

y

41

2-dim Range Tree

A 2-dimensional range tree for storing a set P of n points in the x-y-plane is:

• A 1-dim-range tree Tx for the x-coordinates of points.

• Each node v of Tx has a pointer to a 1-dim-range-tree Ty(v) storing all points which

fall into the interval Ix(v). That is: Ty(v) is a 1-dim-range-tree based on the y-

coordinates of all points p P with p Ix(v).

Leaf-search-tree on x-coordinates of points

Leaf-search-tree ony-coordinates of poins

v

42

2-dim Range Tree

A 2-dim range tree on a set of n points in the plane requires O(n log n) space.

p

p

pp

A point p is stored in all associated range trees Ty(v) for all nodes v on the search path to px in Tx.

Hence, for each depth d, each point p occurs in only one associated search structure Ty(v)for a node v of depth d in Tx.

The 2-dim range tree can be constructed in time O(n log n).(Presort the points on y-coordinates!)

43

The 2-Di

mensional

Range

Tree

• P

r

i

m

a

r

y

s

t

r

u

c

t

u

r

e

:

L

e

a

f

-

s

e

a

r

c

h

t

r

e

e

o

n

x

-

c

o

o

r

d

i

n

a

t

e

s

o

f

p

o

i

n

t

s

• E

v

e

r

y

n

o

d

e

s

t

o

r

e

s

a

s

e

c

o

n

d

a

r

y

s

t

r

u

c

t

u

r

e

:

B

a

l

a

n

c

e

d

b

i

n

a

r

y

s

e

a

r

c

h

t

r

e

e

o

n

y

-

c

o

o

r

d

i

n

a

t

e

s

o

f

p

o

i

n

t

s

i

n

t

h

e

n

o

d

e

s

s

l

a

b

.

Every point is stored in secondary structures of O(log n) nodes.

Space: O(n log n)

44

Answering

Queries

• E

v

e

r

y

2

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

q

u

e

r

y

d

e

c

o

m

p

o

s

e

s

i

n

t

o

O

(

l

o

g

n

)

1

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

q

u

e

r

i

e

s

• E

a

c

h

s

u

c

h

q

u

e

r

y

t

a

k

e

s

O

(

l

o

g

n

+

k

′)

t

i

m

e

• T

o

t

a

l

q

u

e

r

y

c

o

m

p

l

e

x

i

t

y

:

O

(

l

o

g2

n

+

k

)

45

2-dim Range Query

Let P be a set of points in the plane stored in a 2-dim range tree and let a 2-dim range R defined by the two intervals [x, x‘], [y, y‘] be given. The all k points of P falling into the range R can be reported as follows:

1. Determine the O(log n) umbrella nodes for the range [x, x‘], i.e. determine the canonical subsets of P that together contain exactly the points with x-coordinates in the range [x, x‘]. (This is a 1-dim range query on the x-coordinates.)

2. For each umbrella node v obtained in 1, use the associated 1-dim range tree Ty(v)

in order to select the subset P(v) of points with y-coordinates in the range [y, y‘]. (This is a 1-dim range query for each of the O(log n) canonical subsets obtained in 1.)

Time to report all k points in the 2-dim range R: O(log2 n + k).

Query time can be reduced to O(log n +k) by a technique known as fractional cascading.

46

The 3-Di

mensional

Range

Tree

• Primary structure:

S

e

a

r

c

h

t

r

e

e

o

n

x

-

c

o

o

r

d

i

n

a

t

e

s

o

f

p

o

i

n

t

s

• E

v

e

r

y

n

o

d

e

s

t

o

r

e

s

a

secondary structure:

2

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

t

r

e

e

o

n

p

o

i

n

t

s

i

n

t

h

e

n

o

d

e

s

s

l

a

b

.

Every point is stored in secondary structures of O(log n) nodes.

Space: O(n log2 n)

47

Answering

Queries

• E

v

e

r

y

3

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

q

u

e

r

y

d

e

c

o

m

p

o

s

e

s

i

n

t

o

O

(

l

o

g

n

)

2

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

q

u

e

r

i

e

s

• E

a

c

h

s

u

c

h

q

u

e

r

y

t

a

k

e

s

O

(

l

o

g2

n

+

k

′)

t

i

m

e

• T

o

t

a

l

q

u

e

r

y

c

o

m

p

l

e

x

i

t

y

:

O(log3

n + k)

48

d-Di

mensional

Range

Queries

• P

r

i

m

a

r

y

s

t

r

u

c

t

u

r

e

:

S

e

a

r

c

h

t

r

e

e

o

n

x

-

c

o

o

r

d

i

n

a

t

e

s• S

e

c

o

n

d

a

r

y

s

t

r

u

c

t

u

r

e

s

:

(

d

1

)

-

d

i

m

e

n

s

i

o

n

a

l

r

a

n

g

e

t

r

e

e

s• S

p

a

c

e

r

e

q

u

i

r

e

m

e

n

t

:

O

(

n

l

o

gd

 

1

n

)• Q

u

e

r

y

t

i

m

e

:

O

(

n

l

o

gd

 

1

n

)

49

Updates are difficult!

Insertion or deletion of a point p in a 2-dim range tree requires:

1. Insertion or deletion of p into the primary range tree Tx according to the x-

coordinate of p

2. For each node v on the search path to the leaf storing p in Tx, insertion or deletion

of p in the associated secondary range tree Ty(v).

Maintaining the primary range tree balanced is difficult, except for the case d = 1!

Rotations in the primary tree may require to completely rebuild the associated range

trees along the search path!

50

Range

Trees–Summary

Theorem: There exists a data structure to represent a static set S of n points in d dimensions with the following properties:

The data structure allows us to answer range

queries in

O(logd n + k) time. The data structure occupies

O(n logd – 1 n) space.

Note: The query complexity can be reduced to O(logd – 1 n + k), for d ≥ 2, using a very beautiful technique called fractional cascading.

51

Examples for Augmenting DS

• Dynamic order statistics: Augmenting binary search trees by size information

• D-dimensional range trees: Recursive construction of (static) d-dim range trees

• Min-augmented dynamic range trees: Augmenting 1-dim range trees by min-

information

• Interval trees

• Priority search trees

52

minXinRectangle Queries

Problem: Given a set P of points that changes under insertions and deletions,

construct a data structure to store P that can be updated in O(log n) time and that can

find the point with minimal x-coordinate in a given range below a given

threshold in O(log n) time.

l r

y0

minXinRectangle(l, r, y0)

Assumption: All points have pairwise different x-coordinates

53

minXinRectangle Queries

lr

y0

minXinRectangle(l, r, y0)

Assumption: All points have pairwise different x-coordinates

54

Min-augmented

Range

Tree

(2, 12) (3, 4) (4, 11)

(5, 3) (8, 5)

(11, 21)

(14, 7)

(21, 8)(15, 2) (17, 30)

2 4

3

11

8

5

14

17

15 21

2

2

2

3

4 3

3

3

Two data structures in one:

Leaf-search tree on x-coordinates of points

Min-tournament tree on y-coordinates of points

82

55

minXinRectangle(l, r, y0)

l r

Split node

Search for the boundary values l, r.Find the leftmost umbrella node witha min-field ≤ y0.

56

minXinRectangle(l, r, y0)

l r

Split node

Search for the boundary values l, r.Find the leftmost umbrella node witha min-field ≤ y0.

Proceed to the left son of the currentnode, if its min-field is ≤ y0, and tothe right son, otherwise. Return the point at the leaf.

minXinRectangle(l, r, y0) can be found in time O(height of tree).

57

Updates

Insert operation

Insert node as into a standard binary leaf search tree.

Adjust min-fields of every ancestor of the new node by playing a min tournament for

each node and its sibling along the search path.

Delete operation: Similar

58

Maintaining

min-fields under

Rotations

s1

s2s3

s4 s5

s1

s3s5

s4

min{s5, s3}

59

Min-augmented

Range

Trees–Summary

Theorem: There exists a data structure to represent a dynamic set S of n points in the plane with the following properties:

The data structure allows updates and to answer minXinRectangle(l, r, y 0) queries in

O(log n) time. The data structure occupies O (n) space.

Note: The data structure can be based on an arbitrary scheme of balanced binary leaf search trees.

top related