#include <IntervalSequenceTree.h>
Collaboration diagram for IntervalSequenceTree< Key, Allocator >:
Public Types | |
typedef Allocator | allocator_type |
typedef __generic_iterator< true > | const_iterator |
typedef Allocator::const_pointer | const_pointer |
typedef Allocator::const_reference | const_reference |
typedef std::reverse_iterator< const_iterator > | const_reverse_iterator |
typedef Allocator::difference_type | difference_type |
typedef __generic_iterator< false > | iterator |
typedef Allocator::pointer | pointer |
typedef Allocator::reference | reference |
typedef std::reverse_iterator< iterator > | reverse_iterator |
typedef Allocator::size_type | size_type |
typedef Key | value_type |
Public Member Functions | |
const_iterator | begin () const |
iterator | begin () |
size_type | countNodes (IstNode *x=NULL) const |
bool | empty () const |
const_iterator | end () const |
iterator | end () |
void | erase (iterator first, iterator last) |
size_type | erase (size_type point, size_type length) |
const_iterator | find (size_type point) const |
iterator | find (size_type point) |
template<class InputIterator> void | insert (InputIterator first, InputIterator last, size_type point=IST_END) |
iterator | insert (const value_type &val, size_type point=IST_END) |
IntervalSequenceTree (const IntervalSequenceTree &ist) | |
template<class InputIterator> | IntervalSequenceTree (InputIterator first, InputIterator last) |
IntervalSequenceTree () | |
size_type | length () const |
Returns the total length of intervals contained in this interval sequence. | |
size_type | max_size () const |
size_type | nodeCount () const |
IntervalSequenceTree & | operator= (const IntervalSequenceTree &ist) |
const_reverse_iterator | rbegin () const |
reverse_iterator | rbegin () |
const_reverse_iterator | rend () const |
reverse_iterator | rend () |
~IntervalSequenceTree () | |
Protected Types | |
typedef node_allocator_type::const_pointer | const_node_pointer |
typedef Allocator::template rebind< IstNode >::other | node_allocator_type |
typedef node_allocator_type::pointer | node_pointer |
Protected Member Functions | |
void | decrement (IstNode *&x) const |
Static Protected Member Functions | |
void | checkTree (IstNode *cur_node) |
void | deleteSubtree (IstNode *&istn) |
void | increment (IstNode *&x) |
void | propogateChanges (IstNode *cur_node, int64 length_diff, int64 subtree_diff) |
IstNode * | recursiveFind (size_type &point, IstNode *node) |
Protected Attributes | |
IstNode * | leftmost |
Left most tree node, for begin() method. | |
IstNode * | rightmost |
Right most tree node, for end() method. | |
IstNode * | root |
Root of the tree. | |
Friends | |
class | __generic_iterator< false > |
class | __generic_iterator< true > |
Important features are that stabbing queries, stabbing insertions, and stabbing deletions are O( log n ) assuming a uniform distribution of stab sites.
Definition at line 41 of file IntervalSequenceTree.h.
|
Definition at line 47 of file IntervalSequenceTree.h. |
|
Definition at line 130 of file IntervalSequenceTree.h. Referenced by IntervalSequenceTree< Key, Allocator >::begin(), IntervalSequenceTree< Key, Allocator >::end(), and IntervalSequenceTree< Key, Allocator >::find(). |
|
Definition at line 85 of file IntervalSequenceTree.h. |
|
Definition at line 53 of file IntervalSequenceTree.h. |
|
Definition at line 49 of file IntervalSequenceTree.h. |
|
Definition at line 132 of file IntervalSequenceTree.h. Referenced by IntervalSequenceTree< Key, Allocator >::rbegin(), and IntervalSequenceTree< Key, Allocator >::rend(). |
|
Definition at line 51 of file IntervalSequenceTree.h. |
|
Definition at line 129 of file IntervalSequenceTree.h. Referenced by IntervalSequenceTree< Key, Allocator >::begin(), IntervalSequenceTree< Key, Allocator >::end(), IntervalSequenceTree< Key, Allocator >::erase(), and IntervalSequenceTree< Key, Allocator >::find(). |
|
Definition at line 82 of file IntervalSequenceTree.h. |
|
Definition at line 84 of file IntervalSequenceTree.h. |
|
Definition at line 52 of file IntervalSequenceTree.h. |
|
Definition at line 48 of file IntervalSequenceTree.h. |
|
Definition at line 131 of file IntervalSequenceTree.h. Referenced by IntervalSequenceTree< Key, Allocator >::rbegin(), and IntervalSequenceTree< Key, Allocator >::rend(). |
|
Definition at line 50 of file IntervalSequenceTree.h. Referenced by IntervalSequenceTree< Key, Allocator >::erase(), IntervalSequenceTree< Key, Allocator >::find(), IntervalSequenceTree< Key, Allocator >::insert(), and IntervalSequenceTree< Key, Allocator >::recursiveFind(). |
|
Definition at line 44 of file IntervalSequenceTree.h. |
|
Definition at line 195 of file IntervalSequenceTree.h. |
|
Definition at line 204 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::insert(). |
|
Definition at line 209 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::begin(), IntervalSequenceTree< Key, Allocator >::end(), and IntervalSequenceTree< Key, Allocator >::insert(). |
|
Definition at line 219 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::deleteSubtree(), and IntervalSequenceTree< Key, Allocator >::root. |
|
Definition at line 231 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::const_iterator, and IntervalSequenceTree< Key, Allocator >::leftmost. |
|
Definition at line 225 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::iterator, and IntervalSequenceTree< Key, Allocator >::leftmost. Referenced by IntervalSequenceTree< Key, Allocator >::IntervalSequenceTree(), IntervalSequenceTree< Key, Allocator >::operator=(), and IntervalSequenceTree< Key, Allocator >::rend(). |
|
Definition at line 283 of file IntervalSequenceTree.h. |
|
|
|
Definition at line 669 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::IstNode::key, IntervalSequenceTree< Key, Allocator >::IstNode::left, and IntervalSequenceTree< Key, Allocator >::IstNode::right. Referenced by IntervalSequenceTree< Key, Allocator >::~IntervalSequenceTree(). |
|
Definition at line 278 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::root. |
|
Definition at line 243 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::const_iterator. |
|
Definition at line 237 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::iterator. Referenced by IntervalSequenceTree< Key, Allocator >::IntervalSequenceTree(), IntervalSequenceTree< Key, Allocator >::operator=(), and IntervalSequenceTree< Key, Allocator >::rbegin(). |
|
Definition at line 539 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::iterator. |
|
|
|
|
|
Definition at line 406 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::size_type. |
|
Referenced by IntervalSequenceTree< Key, Allocator >::IntervalSequenceTree(), and IntervalSequenceTree< Key, Allocator >::operator=(). |
|
Returns the total length of intervals contained in this interval sequence. Definition at line 590 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::IstNode::length, and IntervalSequenceTree< Key, Allocator >::root. |
|
Definition at line 273 of file IntervalSequenceTree.h. References IST_END. |
|
Definition at line 596 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::root, and IntervalSequenceTree< Key, Allocator >::IstNode::subtree_size. |
|
Definition at line 214 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::begin(), IntervalSequenceTree< Key, Allocator >::end(), and IntervalSequenceTree< Key, Allocator >::insert(). |
|
Definition at line 522 of file IntervalSequenceTree.h. References int64, IntervalSequenceTree< Key, Allocator >::IstNode::length, IntervalSequenceTree< Key, Allocator >::IstNode::parent, and IntervalSequenceTree< Key, Allocator >::IstNode::subtree_size. Referenced by IntervalSequenceTree< Key, Allocator >::erase(). |
|
Definition at line 255 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::const_reverse_iterator, and IntervalSequenceTree< Key, Allocator >::end(). |
|
Definition at line 249 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::end(), and IntervalSequenceTree< Key, Allocator >::reverse_iterator. |
|
|
Definition at line 267 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::begin(), and IntervalSequenceTree< Key, Allocator >::const_reverse_iterator. |
|
Definition at line 261 of file IntervalSequenceTree.h. References IntervalSequenceTree< Key, Allocator >::begin(), and IntervalSequenceTree< Key, Allocator >::reverse_iterator. |
|
Definition at line 127 of file IntervalSequenceTree.h. |
|
Definition at line 128 of file IntervalSequenceTree.h. |
|
Left most tree node, for begin() method. Definition at line 177 of file IntervalSequenceTree.h. Referenced by IntervalSequenceTree< Key, Allocator >::begin(), and IntervalSequenceTree< Key, Allocator >::erase(). |
|
Right most tree node, for end() method. Definition at line 178 of file IntervalSequenceTree.h. Referenced by IntervalSequenceTree< Key, Allocator >::erase(). |
|