AlgoPlus v0.1.0
Loading...
Searching...
No Matches
interval_tree< T >::Iterator Class Reference

Iterator class. More...

#include <interval_tree.h>

Public Member Functions

 Iterator (const int64_t &index, std::vector< std::pair< T, T > > &els) noexcept
 Construct a new Iterator object.
 
Iteratoroperator= (int64_t index)
 = operator for Iterator type
 
Iteratoroperator++ ()
 operator ++ for type Iterator
 
Iterator operator++ (int)
 operator ++ for type Iterator
 
Iteratoroperator-- ()
 operator – for type Iterator
 
Iterator operator-- (int)
 operator – for type Iterator
 
bool operator!= (const Iterator &it)
 operator != for type Iterator
 
std::pair< T, T > operator* ()
 operator * for type Iterator
 
 interval_tree (std::vector< std::pair< T, T > > v={})
 Construct a new interval tree object.
 
 interval_tree (const interval_tree &i)
 Copy constructor for interval tree class.
 
interval_treeoperator= (const interval_tree &i)
 operator = for interval tree class
 
void clear ()
 clear function
 
void insert (std::pair< T, T > p)
 insert function.
 
bool search (std::pair< T, T > p)
 search function.
 
void remove (std::pair< T, T > p)
 remove function.
 
bool overlap (std::pair< T, T > p1, std::pair< T, T > p2)
 overlap function.
 
Iterator begin ()
 pointer that points to begin
 
Iterator end ()
 pointer that points to end
 
size_t size ()
 size function
 
std::vector< std::pair< T, T > > inorder ()
 inorder function.
 
std::vector< std::pair< T, T > > preorder ()
 preorder function.
 
std::vector< std::pair< T, T > > postorder ()
 postorder function.
 
std::vector< std::vector< std::pair< T, T > > > level_order ()
 level order function.
 

Friends

std::ostream & operator<< (std::ostream &out, interval_tree< T > &t)
 operator << for interval tree class
 

Detailed Description

template<typename T>
class interval_tree< T >::Iterator

Iterator class.

Constructor & Destructor Documentation

◆ Iterator()

template<typename T>
interval_tree< T >::Iterator::Iterator ( const int64_t & index,
std::vector< std::pair< T, T > > & els )
inlineexplicitnoexcept

Construct a new Iterator object.

Parameters
elsvector<pair<T,T>> - the elements in inorder fashion

Member Function Documentation

◆ begin()

Iterator interval_tree< T >::begin ( )
inline

pointer that points to begin

Returns
Iterator

◆ end()

Iterator interval_tree< T >::end ( )
inline

pointer that points to end

Returns
Iterator

◆ inorder()

std::vector< std::pair< T, T > > interval_tree< T >::inorder ( )
inline

inorder function.

Returns
vector<pair<T,T>>, the elements inorder.

◆ insert()

void interval_tree< T >::insert ( std::pair< T, T > p)
inline

insert function.

Parameters
pinterval to be inserted.

◆ interval_tree() [1/2]

interval_tree< T >::interval_tree ( const interval_tree & i)
inlineexplicit

Copy constructor for interval tree class.

Parameters
ithe tree we want to copy

◆ interval_tree() [2/2]

interval_tree< T >::interval_tree ( std::vector< std::pair< T, T > > v = {})
inline

Construct a new interval tree object.

Parameters
v: vector<pair<T,T>> initializer

◆ level_order()

std::vector< std::vector< std::pair< T, T > > > interval_tree< T >::level_order ( )
inline

level order function.

Returns
vector<pair<T, T>>, the level order traversal of the tree

◆ operator!=()

template<typename T>
bool interval_tree< T >::Iterator::operator!= ( const Iterator & it)
inline

operator != for type Iterator

Parameters
itconst Iterator
Returns
true if index == it.index
false otherwise

◆ operator*()

template<typename T>
std::pair< T, T > interval_tree< T >::Iterator::operator* ( )
inline

operator * for type Iterator

Returns
std::pair<T,T> the value of the node

◆ operator++() [1/2]

template<typename T>
Iterator & interval_tree< T >::Iterator::operator++ ( )
inline

operator ++ for type Iterator

Returns
Iterator&

◆ operator++() [2/2]

template<typename T>
Iterator interval_tree< T >::Iterator::operator++ ( int )
inline

operator ++ for type Iterator

Returns
Iterator

◆ operator--() [1/2]

template<typename T>
Iterator & interval_tree< T >::Iterator::operator-- ( )
inline

operator – for type Iterator

Returns
Iterator&

◆ operator--() [2/2]

template<typename T>
Iterator interval_tree< T >::Iterator::operator-- ( int )
inline

operator – for type Iterator

Returns
Iterator

◆ operator=() [1/2]

interval_tree & interval_tree< T >::operator= ( const interval_tree & i)
inline

operator = for interval tree class

Parameters
ithe tree we want to copy
Returns
interval_tree&

◆ operator=() [2/2]

template<typename T>
Iterator & interval_tree< T >::Iterator::operator= ( int64_t index)
inline

= operator for Iterator type

Parameters
indexthe current index
Returns
Iterator&

◆ overlap()

bool interval_tree< T >::overlap ( std::pair< T, T > p1,
std::pair< T, T > p2 )
inline

overlap function.

Parameters
p1first interval.
p2second interval.
Returns
true if p1 overlaps p2.

◆ postorder()

std::vector< std::pair< T, T > > interval_tree< T >::postorder ( )
inline

postorder function.

Returns
vector<pair<T, T>>, the elements postorder.

◆ preorder()

std::vector< std::pair< T, T > > interval_tree< T >::preorder ( )
inline

preorder function.

Returns
vector<pair<T,T>>, the elements preorder.

◆ remove()

void interval_tree< T >::remove ( std::pair< T, T > p)
inline

remove function.

Parameters
pinterval to be removed.

◆ search()

bool interval_tree< T >::search ( std::pair< T, T > p)
inline

search function.

Returns
true if an interval exist in the tree.

◆ size()

size_t interval_tree< T >::size ( )
inline

size function

Returns
size_t the size of the tree

The documentation for this class was generated from the following file: