Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
ogdf::steiner_tree::FullComponentWithExtraStore< T, ExtraDataType > Class Template Reference

A data structure to store full components with extra data for each component. More...

#include <ogdf/graphalg/steiner_tree/FullComponentStore.h>

+ Inheritance diagram for ogdf::steiner_tree::FullComponentWithExtraStore< T, ExtraDataType >:

Public Member Functions

ExtraDataTypeextra (int i)
 Returns a reference to the extra data of this full component.
 
const ExtraDataTypeextra (int i) const
 Returns a const reference to the extra data of this full component.
 
- Public Member Functions inherited from ogdf::steiner_tree::FullComponentStore< T, ExtraDataType >
 FullComponentStore (const EdgeWeightedGraph< T > &G, const List< node > &terminals, const NodeArray< bool > &isTerminal)
 
cost (int i) const
 Returns the sum of edge costs of this full component.
 
void foreachAdjEntry (int i, Fun f) const
 
void foreachEdge (int id, const NodeArray< NodeArray< edge > > &pred, Fun f) const
 
void foreachNode (int id, const NodeArray< NodeArray< edge > > &pred, Fun f) const
 
void foreachNode (int id, Fun f) const
 
const EdgeWeightedGraph< T > & graph () const
 
void insert (const EdgeWeightedGraphCopy< T > &comp)
 Inserts a component. Note that comp is copied and degree-2 nodes are removed.
 
bool isEmpty () const
 Checks if the store does not contain any full components.
 
bool isTerminal (int id, node t) const
 checks if a given node t is a terminal in the full component with given id
 
bool isTerminal (node v) const
 
node original (node v) const
 
void remove (int id)
 Removes a component by its id.
 
int size () const
 Returns the number of full components in the store.
 
adjEntry start (int i) const
 
const Array< node > & terminals (int id) const
 Returns the list of terminals in the full component with given id.
 

Additional Inherited Members

- Protected Member Functions inherited from ogdf::steiner_tree::FullComponentStore< T, ExtraDataType >
void copyEdges (Metadata< ExtraDataType > &data, const EdgeWeightedGraphCopy< T > &comp)
 Copy edges from comp into our representation.
 
void copyEdgesWithSimplifiedPaths (Metadata< ExtraDataType > &data, const EdgeWeightedGraphCopy< T > &comp, const ArrayBuffer< node > &nonterminals)
 Copy edges from comp into our representation, traversing variant to ignore degree-2 nodes.
 
void traverseOverDegree2Nonterminals (node &uO, T &weight, EdgeArray< bool > &marked, adjEntry adj, const EdgeWeightedGraphCopy< T > &comp) const
 Traverse over degree-2 nonterminals.
 
- Protected Attributes inherited from ogdf::steiner_tree::FullComponentStore< T, ExtraDataType >
ArrayBuffer< Metadata< ExtraDataType > > m_components
 List of full components (based on metadata)
 
EdgeWeightedGraph< T > m_graph
 Our graph representation for the full component store.
 
const NodeArray< bool > & m_isTerminal
 Incidence vector for terminal nodes.
 
NodeArray< nodem_nodeCopy
 Mapping of original terminals to m_graph nodes.
 
NodeArray< nodem_nodeOrig
 Mapping of m_graph nodes to original nodes.
 
const EdgeWeightedGraph< T > & m_originalGraph
 The original Steiner instance.
 
const List< node > & m_terminals
 The terminal list of the original Steiner instance.
 

Detailed Description

template<typename T, typename ExtraDataType>
class ogdf::steiner_tree::FullComponentWithExtraStore< T, ExtraDataType >

A data structure to store full components with extra data for each component.

Definition at line 350 of file FullComponentStore.h.

Member Function Documentation

◆ extra() [1/2]

Returns a reference to the extra data of this full component.

Definition at line 355 of file FullComponentStore.h.

◆ extra() [2/2]

Returns a const reference to the extra data of this full component.

Definition at line 362 of file FullComponentStore.h.


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