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

interval tree class More...

#include <interval_tree.h>

Classes

class  Iterator
 Iterator class. More...

Public Member Functions

 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 >

interval tree class

Constructor & Destructor Documentation

◆ interval_tree() [1/2]

template<typename T>
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

◆ interval_tree() [2/2]

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

Copy constructor for interval tree class.

Parameters
ithe tree we want to copy

Member Function Documentation

◆ begin()

template<typename T>
Iterator interval_tree< T >::begin ( )
inline

pointer that points to begin

Returns
Iterator

◆ end()

template<typename T>
Iterator interval_tree< T >::end ( )
inline

pointer that points to end

Returns
Iterator

◆ inorder()

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

inorder function.

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

◆ insert()

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

insert function.

Parameters
pinterval to be inserted.

◆ level_order()

template<typename T>
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>
interval_tree & interval_tree< T >::operator= ( const interval_tree< T > & i)
inline

operator = for interval tree class

Parameters
ithe tree we want to copy
Returns
interval_tree&

◆ overlap()

template<typename T>
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()

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

postorder function.

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

◆ preorder()

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

preorder function.

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

◆ remove()

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

remove function.

Parameters
pinterval to be removed.

◆ search()

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

search function.

Returns
true if an interval exist in the tree.

◆ size()

template<typename T>
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: