374 : m_G(G), m_eStack(G.numberOfEdges()) {
378 initNotConnected(G.firstNode());
391 : m_G(G), m_eStack(G.numberOfEdges()) {
395 initNotConnected(
vG);
441 return m_bNode_type[m_hNode_bNode[m_gNode_hNode[
vG]]] == BNodeType::BComp
443 : GNodeType::CutVertex;
Declaration and implementation of EdgeArray class.
Declaration and implementation of NodeArray class.
Declaration of singly linked lists and iterators.
Class for adjacency list elements.
An array that keeps track of the number of inserted elements; also usable as an efficient stack.
INDEX size() const
Returns the size (number of elements) of the array.
BNodeType
Enumeration type for characterizing the BC-tree-vertices.
void initNotConnected(node vG)
Initialization for not connected graphs.
NodeArray< bool > m_bNode_isMarked
Array of marks for the BC-tree-vertices.
GNodeType
Enumeration type for characterizing the vertices of the original graph.
int m_numC
The number of C-components.
node rep(node vG) const
Returns a vertex of the biconnected components graph corresponding to a given vertex of the original ...
void biComp(adjEntry adjuG, node vG)
Generates the BC-tree and the biconnected components graph recursively.
SList< node > * findPathBCTree(node sB, node tB) const
Calculates a path in the BC-tree.
int numberOfNodes(node vB) const
Returns the number of vertices belonging to the biconnected component represented by a given BC-tree-...
ArrayBuffer< adjEntry > m_eStack
Temporary stack.
int m_numB
The number of B-components.
const Graph & bcTree() const
Returns the BC-tree graph.
int numberOfBComps() const
Returns the number of B-components.
Graph m_H
The biconnected components graph.
NodeArray< SList< edge > > m_bNode_hEdges
Array that contains for each BC-tree-vertex a linear list of the edges of the biconnected components ...
virtual node parent(node vB) const
NodeArray< bool > m_gNode_isMarked
Graph & m_G
The original graph.
virtual ~BCTree()
Virtual destructor.
const SList< edge > & hEdges(node vB) const
Returns a linear list of the edges of the biconnected components graph belonging to the biconnected c...
const Graph & originalGraph() const
Returns the original graph.
NodeArray< node > m_gNode_hNode
An injective mapping vertices(G) -> vertices(H).
node findNCA(node uB, node vB) const
Calculates the nearest common ancestor of two vertices of the BC-tree.
void initNotConnected(List< node > &vG)
Initialization for not connected graphs.
virtual node bcproper(node vG) const
Returns a BC-tree-vertex representing a biconnected component which a given vertex of the original gr...
BCTree(const BCTree &)=delete
Copy constructor is undefined!
edge rep(edge eG) const
Returns the edge of the biconnected components graph corresponding to a given edge of the original gr...
NodeArray< node > m_hNode_bNode
EdgeArray< edge > m_gEdge_hEdge
A bijective mapping edges(G) -> edges(H).
EdgeArray< edge > m_hEdge_gEdge
A bijective mapping edges(H) -> edges(G).
NodeArray< int > m_bNode_numNodes
Array that contains for each BC-tree-vertex the number of vertices belonging to the biconnected compo...
int numberOfEdges(node vB) const
Returns the number of edges belonging to the biconnected component represented by a given BC-tree-ver...
NodeArray< node > m_hNode_gNode
A surjective mapping vertices(H) -> vertices(G).
const Graph & auxiliaryGraph() const
Returns the biconnected components graph.
NodeArray< node > m_bNode_hParNode
Array that contains for each BC-tree-vertex the representant of itself within the subgraph in the bic...
NodeArray< int > m_number
Temporary array.
NodeArray< node > m_gtoh
Temporary array.
NodeArray< node > m_bNode_hRefNode
Array that contains for each BC-tree-vertex the representantive of its parent within the subgraph in ...
BCTree(Graph &G, List< node > &vG)
Constructor for not connected graphs.
EdgeArray< node > m_hEdge_bNode
A surjective mapping edges(H) -> vertices(B).
node bComponent(node uG, node vG) const
NodeArray< int > m_lowpt
Temporary array.
int numberOfCComps() const
Returns the number of C-components.
BCTree & operator=(const BCTree &)=delete
Assignment operator is undefined!
virtual node cutVertex(node uB, node vB) const
Returns the copy of a cut-vertex in the biconnected components graph which belongs to a certain B-com...
BCTree(Graph &G, node vG, bool callInitConnected=false)
A constructor.
SList< node > m_nodes
Temporary list.
GNodeType typeOfGNode(node vG) const
virtual node bcproper(edge eG) const
Returns the BC-tree-vertex representing the biconnected component which a given edge of the original ...
NodeArray< BNodeType > m_bNode_type
Array that contains the type of each BC-tree-vertex.
SList< node > & findPath(node sG, node tG) const
Calculates a path in the BC-tree.
BCTree(Graph &G, bool callInitConnected=false)
A constructor.
BNodeType typeOfBNode(node vB) const
edge original(edge eH) const
Returns the edge of the original graph which a given edge of the biconnected components graph is corr...
virtual node repVertex(node uG, node vB) const
Returns a vertex of the biconnected components graph corresponding to a given vertex of the original ...
Dynamic arrays indexed with edges.
Class for the representation of edges.
Data type for general directed graphs (adjacency list representation).
Doubly linked lists (maintaining the length of the list).
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
Singly linked lists (maintaining the length of the list).
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.