CS 6310 Advanced Data Structures Tree Structures for
























- Slides: 24

CS 6310 Advanced Data Structures Tree Structures for Set of Intervals by Halil Ibrahim DURSUNOGLU

OUTLINE Interval Trees � Segment Trees � Trees for the Union of Intervals � Trees for Sums of Weighted Intervals � Trees for Interval-Restricted Maximum Sum Queries �

Interval Trees Stores a set of intervals � Returns for any query key all the intervals that contain this query value � Each interval [ai, bi] � � The key of node is contained � The interval is contained in the interrval associated with the node.

Interval Trees (Cont. )

Interval Trees (Cont. ) If query_key < n_key � we set list to n->left_list � while list != NULL and list->key <= query_key � Else query_key >= n->key � we set list to n->right_list � While list!=NULL and list->key >=query_key �

Interval Trees (Cont. ) Every level there is at most one associated node � If query_key < node->key � left endpoint <= query key <= n->key <= right end point � If query_key > node->key � left endpoint <= node->key <= query_key <= right endpoint �

OUTLINE Interval Trees � Segment Trees � Trees for the Union of Intervals � Trees for Sums of Weighted Intervals � Trees for Interval-Restricted Maximum Sum Queries �

Segment Trees Keeping track of a set of n intervals � Performance is worser than interval tree � A number of more general tasks can be done �

Segment Tree (Cont. )

OUTLINE Interval Trees � Segment Trees � Trees for the Union of Intervals � Trees for Sums of Weighted Intervals � Trees for Interval-Restricted Maximum Sum Queries �

Trees for the Union of Intervals It comes with a problem whether it is possible to determine the measure (length) of a union of n intervals in time better than Theta(n logn). � Simple solution: � � Sort interval endpoints � Sweep from the smallest end point up � Keep track of the number of intervals

Trees for the Union of Intervals Two dimensional measure problems: � � Structure maintaining measure of intervals under insertion and deletion � Each node contains n->measure � if n->interval_list != NULL �n->measure is length of node interval of n � if n is leaf and n->interval_list = NULL �n->measure = 0 � if n is interior and n->interval_list = NULL �n->measure = n->left->measure + n->right->measure

Trees for the Union of Intervals We need associated intervals as concept � � n->measure is the measure of the intersection of the node with the union of all its associated intervals � n->rightmax is the maximum right end point all of interval associated with n � n->leftmin the minimum leftendpoint of all intervals associated with n

Trees for The Union of Intervals

Trees for the Union of Intervals In order to make query easier, we need to some additional fields � � n->leftmin � n->leftmax � n->rigtmin � n->rightmax � n->next // is the pointer to the leaf with next larger key

Trees for the Union of Intervals � n->transfer // is the pointer to the highest node v with � v->left->rightmin = n and � v->left->rightmax->key >= v->key

OUTLINE Interval Trees � Segment Trees � Trees for the Union of Intervals � Trees for Sums of Weighted Intervals � Trees for Interval-Restricted Maximum Sum Queries �

Trees for Sums of Weighted Intervals Simple but useful application � Keeps track of a piecewise constant function �

Trees for Sums of Weighted Intervals Some source like electricity � Resource used by various system � Time interval at a constant level � To construct it, segment tree is used � Ask only for the number of covering intervals �

Trees for Sums of Weighted Intervals Easy to built but need extra fields � n->summand � To insert a weighted interval, firstly insert interval endpoint � �

OUTLINE Interval Trees � Segment Trees � Trees for the Union of Intervals � Trees for Sums of Weighted Intervals � Trees for Interval-Restricted Maximum Sum Queries �

Trees for Interval-Restricted Maximum Sum Queries � Same objects, piecewise constant functions or set of weighted invertal but supporting even stronger queries �

Trees for Interval-Restricted Maximum Sum Queries

Trees for Interval-Restricted Maximum Sum Queries Built like Segment Trees � Has additional fields to Trees for Sums of Weighted Intervals � n->partial_sum � O(logn) �