SDSL  3.0.0
Succinct Data Structure Library
sdsl::cst_bfs_iterator< Cst, Queue > Class Template Reference

A forward iterator for a breath first traversal of a tree. More...

#include <cst_iterators.hpp>

Inheritance diagram for sdsl::cst_bfs_iterator< Cst, Queue >:

Public Types

typedef Cst::node_type value_type
 
typedef const value_type const_reference
 
typedef Cst::size_type size_type
 
typedef cst_bfs_iterator< Cst, Queue > iterator
 
typedef Queue queue_type
 

Public Member Functions

 cst_bfs_iterator (const Cst *cst, const value_type node, bool valid=true, bool end_it=false)
 Constructor. More...
 
size_type size () const
 Returns the current number of nodes in the queue. More...
 
const_reference operator* () const
 Method for dereferencing the iterator. More...
 
iteratoroperator++ ()
 Prefix increment of the iterator. More...
 
iterator operator++ (int)
 Postfix increment of the iterator. More...
 
bool operator== (const iterator &it) const
 Equality operator. More...
 
bool operator!= (const iterator &it) const
 Inequality operator. More...
 

Detailed Description

template<class Cst, class Queue = std::queue<typename Cst::node_type>>
class sdsl::cst_bfs_iterator< Cst, Queue >

A forward iterator for a breath first traversal of a tree.

Template Parameters
CstA class which fulfills the CST concept
QueueA queue for the traversal. Note that for large data, you should use an external implementation of a queue.

Definition at line 265 of file cst_iterators.hpp.

Member Typedef Documentation

◆ const_reference

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
typedef const value_type sdsl::cst_bfs_iterator< Cst, Queue >::const_reference

Definition at line 269 of file cst_iterators.hpp.

◆ iterator

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
typedef cst_bfs_iterator<Cst, Queue> sdsl::cst_bfs_iterator< Cst, Queue >::iterator

Definition at line 271 of file cst_iterators.hpp.

◆ queue_type

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
typedef Queue sdsl::cst_bfs_iterator< Cst, Queue >::queue_type

Definition at line 272 of file cst_iterators.hpp.

◆ size_type

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
typedef Cst::size_type sdsl::cst_bfs_iterator< Cst, Queue >::size_type

Definition at line 270 of file cst_iterators.hpp.

◆ value_type

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
typedef Cst::node_type sdsl::cst_bfs_iterator< Cst, Queue >::value_type

Definition at line 268 of file cst_iterators.hpp.

Constructor & Destructor Documentation

◆ cst_bfs_iterator()

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
sdsl::cst_bfs_iterator< Cst, Queue >::cst_bfs_iterator ( const Cst *  cst,
const value_type  node,
bool  valid = true,
bool  end_it = false 
)
inline

Constructor.

Parameters
cstPointer to the compressed suffix tree.
nodeRoot node of the traversal.
validState of the iterator.
endIf valid=true and end=true, we get the end() iterator otherwise `‘end’' has no effect.

Definition at line 287 of file cst_iterators.hpp.

Member Function Documentation

◆ operator!=()

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
bool sdsl::cst_bfs_iterator< Cst, Queue >::operator!= ( const iterator it) const
inline

Inequality operator.

Definition at line 346 of file cst_iterators.hpp.

◆ operator*()

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
const_reference sdsl::cst_bfs_iterator< Cst, Queue >::operator* ( ) const
inline

Method for dereferencing the iterator.

Definition at line 298 of file cst_iterators.hpp.

◆ operator++() [1/2]

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
iterator& sdsl::cst_bfs_iterator< Cst, Queue >::operator++ ( )
inline

Prefix increment of the iterator.

Definition at line 301 of file cst_iterators.hpp.

◆ operator++() [2/2]

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
iterator sdsl::cst_bfs_iterator< Cst, Queue >::operator++ ( int  )
inline

Postfix increment of the iterator.

Definition at line 321 of file cst_iterators.hpp.

◆ operator==()

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
bool sdsl::cst_bfs_iterator< Cst, Queue >::operator== ( const iterator it) const
inline

Equality operator.

Definition at line 329 of file cst_iterators.hpp.

◆ size()

template<class Cst , class Queue = std::queue<typename Cst::node_type>>
size_type sdsl::cst_bfs_iterator< Cst, Queue >::size ( ) const
inline

Returns the current number of nodes in the queue.

Definition at line 295 of file cst_iterators.hpp.


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