389 BCTree(
Graph& G,
node vG,
bool not_connected =
false) : m_G(G), m_eStack(G.numberOfEdges()) {
394 initNotConnected(vG);
447 return m_bNode_type[m_hNode_bNode[m_gNode_hNode[vG]]] == BNodeType::BComp
449 : GNodeType::CutVertex;
Declaration and implementation of ArrayBuffer class.
Includes declaration of graph class.
Declaration of singly linked lists and iterators.
Basic declarations, included by all source files.
Class for adjacency list elements.
An array that keeps track of the number of inserted elements; also usable as an efficient stack.
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.
node bcproper(node vG) const
Returns a BC-tree-vertex representing a biconnected component which a given vertex of the original gr...
BCTree(BCTree &&move)=delete
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.
node original(node vH) const
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
BCTree(Graph &G, bool not_connected=false)
A constructor.
NodeArray< bool > m_gNode_isMarked
virtual node bccomp(node vH) const
Returns a BC-tree-vertex representing a biconnected component which a given vertex of the auxiliary g...
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.
node bcproper(edge eG) const
Returns the BC-tree-vertex representing the biconnected component which a given edge of the original ...
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.
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...
SList< node > m_nodes
Temporary list.
BCTree(Graph &G, node vG, bool not_connected=false)
A constructor.
GNodeType typeOfGNode(node vG) const
BCTree & operator=(BCTree &&move)=delete
virtual node bccomp(edge eH) const
Returns the BC-tree-vertex representing the biconnected component which a given edge of the auxiliary...
BCTree(const BCTree ©)=delete
NodeArray< BNodeType > m_bNode_type
Array that contains the type of each BC-tree-vertex.
BCTree & operator=(const BCTree ©)=delete
SList< node > & findPath(node sG, node tG) const
Calculates a path in the BC-tree.
BNodeType typeOfBNode(node vB) const
void consistencyCheck() const
Asserts that this BCTree is consistent.
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 ...
Class for the representation of edges.
Data type for general directed graphs (adjacency list representation).
Doubly linked lists (maintaining the length of the list).
Class for the representation of nodes.
Singly linked lists (maintaining the length of the list).
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
RegisteredArray for nodes, edges and adjEntries of a graph.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
The namespace for all OGDF objects.
std::ostream & operator<<(std::ostream &os, const ogdf::Array< E, INDEX > &a)
Prints array a to output stream os.