Segment Trees - Advanced Data Structures - Lecture Slides, Slides of Computer Science

These are the Lecture Slides of Advanced Data Structures which includes Split Algorithm, Unbalanced Binary Search Trees, Forward Pass, Forward Pass Example, Backward Cleanup Pass, Retrace Path, Current Nodes, Roots of Respective Tries, Branch Nodes etc. Key important points are: Segment Trees, Computational Geometry, Basic Data Structure, Geometric Objects, More General Polygons, Sentry Location, Segment Tree Application, Binary Tree, Leaf Node, Unit Interval

Typology: Slides

2012/2013

Uploaded on 03/19/2013

dharmakeerti
dharmakeerti 🇮🇳

4.2

(27)

89 documents

1 / 11

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
Segment Trees
Basic data structure in computational geometry.
Computational geometry.
Computations with geometric objects.
Points in 1-, 2-, 3-, d-space.
Closest pair of points.
Nearest neighbor of given point.
Lines in 1-, 2-, 3-, d-space.
Machine busy intervals.
IP router-table filters (10*, [20, 60]).
Segment Trees
Rectangles or more general polygons in 2-space.
VLSI mask verification.
Sentry location.
2-D firewall filter.
(source address, destination address)
(10*, 011*)
When addresses are 4 bits long this filter matches addresses in
the rectangle ([8,11], [6,7])
8 11
6
7
Source address
Docsity.com
pf3
pf4
pf5
pf8
pf9
pfa

Partial preview of the text

Download Segment Trees - Advanced Data Structures - Lecture Slides and more Slides Computer Science in PDF only on Docsity!

Segment Trees

  • Basic data structure in computational geometry.
  • Computational geometry. ƒ Computations with geometric objects. ƒ Points in 1 -, 2 -, 3 -, d-space. - Closest pair of points. - Nearest neighbor of given point. ƒ Lines in 1 -, 2 -, 3 -, d-space. - Machine busy intervals. - IP router-table filters (10*, [20, 60]).

Segment Trees

ƒ Rectangles or more general polygons in 2 -space.

  • VLSI mask verification.
  • Sentry location.
  • 2-D firewall filter.
    • (source address, destination address)
    • (10, 011)
    • When addresses are 4 bits long this filter matches addresses in the rectangle ([8,11], [6,7])

8 11

6

7

Source address

Segment Tree Application

  • Store intervals of the form [i,j], i < j, i and j are integers. ƒ [i,j] may, for example represent the fact that a machine is busy from time i to time j.
  • Answer queries of the form: which intervals intersect/overlap with a given unit interval [a,a+1]. ƒ List all machines that are busy from 2 to 3.

Segment Tree – Definition

  • Binary tree.
  • Each node, v, represents a closed interval. ƒ s(v) = start of v’s range. ƒ e(v) = end of v’s range. ƒ s(v) < e(v). ƒ s(v) and e(v) are integers. ƒ Root range = [1,n].
  • e(v) = s(v) + 1 => v is a leaf node (unit interval).
  • e(v) > s(v) + 1 => ƒ Left child range is [s(v), (s(v) + e(v))/2]. ƒ Right child range is [(s(v) + e(v))/2, e(v)].

[3,11] is stored in node p iff all leaves in subtree rooted at p are highlighted and no ancestor of p

Each node of a segment tree contains 0 or more

Which Nodes Are Stored?

Need to store only those nodes that contain intervals

Segment Tree Height

Properties

Each interval is in O(log n) nodes.

 - 1, - 1,7 7, - 1,4 4,7 7,10 10, 
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 8,9 9,10 11,12 12, - 1, Store Interval [3,11] - 1,7 7,
      • 1,4 4,7 7,10 10,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 8,9 9,10 11,12 12,
  • 1,2 2, nodes of the segment tree.
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 8,9 9,10 11,12 12, - 1, Store Interval [3,11] - 1,7 7,
      • 1,4 4,7 7,10 10,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 8,9 9,10 11,12 12,
  • 1,2 2, satisfies this property.
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 3,4 8,9 9,10 11,12 12, - 4,7 7, - 10, - 1, Store Interval [4,10] - 1,7 7,
      • 1,4 4,7 7,10 10,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 8,9 9,10 11,12 12,
  • 1,2 2, intervals.
    • 2, - 4,5 5, - 5,6 6, - 7,8 8,10 11, - 8,9 9,10 11,12 12, - 4,7 7, - 1, plus the ancestors of these nodes. - 1,7 7,
      • 1,4 4,7 7,10 10,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 8,9 9,10 11,12 12,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 3,4 8,9 9,10 11,12 12, - 4,7 7, - 10, - 1, Range = [1,n] => Height <= ceil(log 2 (n-1)) + 1. - 1,7 7,
      • 1,4 4,7 7,10 10,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 8,9 9,10 11,12 12,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 3,4 8,9 9,10 11,12 12, - 4,7 7, - 10, - 1, [i,j] in node v => [i,j] not in any ancestor of v - 1,7 7,
      • 1,4 4,7 7,10 10,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 3,4 8,9 9,10 11,12 12, - 4,7 7, - 10, - 1, [i,j] in node v => [i,j] not in sibling of v - 1,7 7,
      • 1,4 4,7 7,10 10,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 3,4 8,9 9,10 11,12 12, - 4,7 7, - 10, - 1, [i,j] may be in at most 2 nodes at any level. - 1,7 7,
      • 1,4 4,7 7,10 10,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 3,4 8,9 9,10 11,12 12, - 4,7 7, - 10, - 1, Top-Down Insert — [3,11] - 1,7 7,
      • 1,4 4,7 7,10 10,
  • 1,2 2,
    • 2,3 3, - 4,5 5, - 5,6 6, - 7,8 8,10 10,11 11, - 3,4 8,9 9,10 11,12 12, - 4,7 7, - 10,

Top-Down Insert

insert(s, e, v) {// insert [s,e] into subtree rooted at v if (s <= s(v) && e(v) <= e) add [s,e] to v; // interval spans node range else { if (s < (s(v) + e(v))/2) insert(s,e,v.leftChild); if (e > (s(v) + e(v))/2) insert(s,e,v.rightChild); } }

Complexity Of Insert

1, 1,7 (^) 7,

1,4 4,7 7,10 10,

1,2 2,

2,3 3,

4,5 5,

5,6 6,

8,9 9,10 11,12 12,

Let L and R, respectively, be the leaves for [s,s+1] and [e – 1,e].

1,2 2,

2,3 3,

4,5 5,

5,6 6,

7,8 8,10 10,11 11,

3,4 8,9 9,10 11,12 12,

10,

Top-Down Delete

delete(s, e, v) {// delete [s,e] from subtree rooted at v if (s <= s(v) && e(v) <= e) delete [s,e] from v; // interval spans node range else { if (s < (s(v) + e(v))/2) delete(s,e,v.leftChild); if (e > (s(v) + e(v))/2) delete(s,e,v.rightChild); } }

Search – [a,a+1]

  • Follow the unique path from the root to the leaf node for the interval [a,a+1].
  • Report all segments stored in the nodes on this unique path.
  • No segment is reported twice, because no segment is stored in both a node and the ancestor of this node.

Search – [5,6]

1,

1,4 4,7 7,10 10,

1,2 2,

2,3 3,

4,5 5,

5,6 6,

7,8 8,10 10,11 11,

8,9 9,10 11,12 12,

W

5,

W

W

W W

O(log n + s), where s is the # of segments in the answer.