Algorithms Library Toolkit
A toolkit for algorithms, especially for algorithms on formal languages
Public Types | Public Member Functions | Protected Attributes
graph::DirectedGraph< TNode, TEdge > Class Template Reference

#include <DirectedGraph.hpp>

Inheritance diagram for graph::DirectedGraph< TNode, TEdge >:
[legend]
Collaboration diagram for graph::DirectedGraph< TNode, TEdge >:
[legend]

Public Types

using node_type = TNode
 
using edge_type = TEdge
 
- Public Types inherited from graph::GraphInterface< TNode, TEdge >
using node_type = TNode
 
using edge_type = TEdge
 

Public Member Functions

const ext::map< TNode, ext::map< TNode, TEdge > > & getSuccessorList () const &
 
ext::map< TNode, ext::map< TNode, TEdge > > && getSuccessorList () &&
 
const ext::map< TNode, ext::map< TNode, TEdge > > & getPredecessorList () const &
 
ext::map< TNode, ext::map< TNode, TEdge > > && getPredecessorList () &&
 
auto operator<=> (const DirectedGraph &other) const
 
bool operator== (const DirectedGraph &other) const
 
void operator>> (ext::ostream &ostream) const override
 
void addNode (const TNode &n)
 
void addNode (TNode &&n)
 
template<typename ... Params>
void addNode (Params &&... params)
 
bool addEdge (const TEdge &e)
 
bool addEdge (TEdge &&e)
 
template<typename ... Params>
bool addEdge (Params &&... params)
 
size_t nodeCount () const override
 
size_t edgeCount () const override
 
ext::set< TNode > getNodes () const override
 
ext::vector< TEdge > getEdges () const override
 
ext::set< TNode > successors (const TNode &n) const override
 
ext::vector< TEdge > successorEdges (const TNode &n) const override
 
ext::set< TNode > predecessors (const TNode &n) const override
 
ext::vector< TEdge > predecessorEdges (const TNode &n) const override
 
std::string name () const override
 
- Public Member Functions inherited from graph::GraphBase
virtual ~GraphBase () noexcept=default
 

Protected Attributes

ext::map< TNode, ext::map< TNode, TEdge > > m_succ_list
 
ext::map< TNode, ext::map< TNode, TEdge > > m_pred_list
 

Member Typedef Documentation

◆ edge_type

template<typename TNode , typename TEdge >
using graph::DirectedGraph< TNode, TEdge >::edge_type = TEdge

◆ node_type

template<typename TNode , typename TEdge >
using graph::DirectedGraph< TNode, TEdge >::node_type = TNode

Member Function Documentation

◆ addEdge() [1/3]

template<typename TNode , typename TEdge >
bool graph::DirectedGraph< TNode, TEdge >::addEdge ( const TEdge &  e)
Here is the call graph for this function:

◆ addEdge() [2/3]

template<typename TNode , typename TEdge >
template<typename... Params>
bool graph::DirectedGraph< TNode, TEdge >::addEdge ( Params &&...  params)

◆ addEdge() [3/3]

template<typename TNode , typename TEdge >
bool graph::DirectedGraph< TNode, TEdge >::addEdge ( TEdge &&  e)
Here is the call graph for this function:

◆ addNode() [1/3]

template<typename TNode , typename TEdge >
void graph::DirectedGraph< TNode, TEdge >::addNode ( const TNode &  n)

◆ addNode() [2/3]

template<typename TNode , typename TEdge >
template<typename... Params>
void graph::DirectedGraph< TNode, TEdge >::addNode ( Params &&...  params)

◆ addNode() [3/3]

template<typename TNode , typename TEdge >
void graph::DirectedGraph< TNode, TEdge >::addNode ( TNode &&  n)

◆ edgeCount()

template<typename TNode , typename TEdge >
size_t graph::DirectedGraph< TNode, TEdge >::edgeCount
overridevirtual

◆ getEdges()

template<typename TNode , typename TEdge >
ext::vector< TEdge > graph::DirectedGraph< TNode, TEdge >::getEdges
overridevirtual

◆ getNodes()

template<typename TNode , typename TEdge >
ext::set< TNode > graph::DirectedGraph< TNode, TEdge >::getNodes
overridevirtual

◆ getPredecessorList() [1/2]

template<typename TNode , typename TEdge >
ext::map< TNode, ext::map< TNode, TEdge > > && graph::DirectedGraph< TNode, TEdge >::getPredecessorList ( ) &&

◆ getPredecessorList() [2/2]

template<typename TNode , typename TEdge >
const ext::map< TNode, ext::map< TNode, TEdge > > & graph::DirectedGraph< TNode, TEdge >::getPredecessorList ( ) const &
Here is the caller graph for this function:

◆ getSuccessorList() [1/2]

template<typename TNode , typename TEdge >
ext::map< TNode, ext::map< TNode, TEdge > > && graph::DirectedGraph< TNode, TEdge >::getSuccessorList ( ) &&

◆ getSuccessorList() [2/2]

template<typename TNode , typename TEdge >
const ext::map< TNode, ext::map< TNode, TEdge > > & graph::DirectedGraph< TNode, TEdge >::getSuccessorList ( ) const &
Here is the caller graph for this function:

◆ name()

template<typename TNode , typename TEdge >
std::string graph::DirectedGraph< TNode, TEdge >::name
overridevirtual

◆ nodeCount()

template<typename TNode , typename TEdge >
size_t graph::DirectedGraph< TNode, TEdge >::nodeCount
overridevirtual

◆ operator<=>()

template<typename TNode , typename TEdge >
auto graph::DirectedGraph< TNode, TEdge >::operator<=> ( const DirectedGraph< TNode, TEdge > &  other) const
inline
Here is the call graph for this function:

◆ operator==()

template<typename TNode , typename TEdge >
bool graph::DirectedGraph< TNode, TEdge >::operator== ( const DirectedGraph< TNode, TEdge > &  other) const
inline
Here is the call graph for this function:

◆ operator>>()

template<typename TNode , typename TEdge >
void graph::DirectedGraph< TNode, TEdge >::operator>> ( ext::ostream ostream) const
overridevirtual

Implements graph::GraphBase.

◆ predecessorEdges()

template<typename TNode , typename TEdge >
ext::vector< TEdge > graph::DirectedGraph< TNode, TEdge >::predecessorEdges ( const TNode &  n) const
overridevirtual

◆ predecessors()

template<typename TNode , typename TEdge >
ext::set< TNode > graph::DirectedGraph< TNode, TEdge >::predecessors ( const TNode &  n) const
overridevirtual

◆ successorEdges()

template<typename TNode , typename TEdge >
ext::vector< TEdge > graph::DirectedGraph< TNode, TEdge >::successorEdges ( const TNode &  n) const
overridevirtual

◆ successors()

template<typename TNode , typename TEdge >
ext::set< TNode > graph::DirectedGraph< TNode, TEdge >::successors ( const TNode &  n) const
overridevirtual

Field Documentation

◆ m_pred_list

template<typename TNode , typename TEdge >
ext::map<TNode, ext::map<TNode, TEdge> > graph::DirectedGraph< TNode, TEdge >::m_pred_list
protected

◆ m_succ_list

template<typename TNode , typename TEdge >
ext::map<TNode, ext::map<TNode, TEdge> > graph::DirectedGraph< TNode, TEdge >::m_succ_list
protected

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