111 node rootNode()
const override {
return findSPQR(m_bNode_SPQR[m_B.firstNode()]); }
133 return findPathSPQR(m_gNode_hNode[s], m_gNode_hNode[
t]);
143 return createSkeleton(v);
153 return skeleton(spqrproper(m_gEdge_hEdge[e]));
161 e = m_gEdge_hEdge[e];
162 skeleton(spqrproper(e));
163 return m_skelEdge[e];
172 edge e = virtualEdge(v, w);
177 return m_skelEdge[e];
223 edge e = m_hEdge_gEdge[*i];
226 }
else if (*i != m_tNode_hRefEdge[v]) {
227 cpRec(spqrproper(*i),
Gp);
Declaration of class DynamicSPQRForest.
Declaration of class DynamicSkeleton.
Declaration of class SPQRTree.
Linear-time implementation of dynamic SPQR-trees.
NodeArray< node > m_mapV
temporary array used by createSkeleton()
DynamicSkeleton & createSkeleton(node vT) const
Creates the skeleton graph belonging to a given vertex vT of T.
edge skeletonEdge(node v, node w) const
Returns the virtual edge in the skeleton of w that corresponds to the tree edge between v and w.
int numberOfSNodes() const override
Returns the number of S-nodes in T.
const Graph & originalGraph() const override
Returns a reference to the original graph G.
NodeArray< DynamicSkeleton * > m_sk
pointer to skeleton of a node in T
node rootNode() const override
Returns the root node of T.
DynamicSPQRTree(Graph &G)
Creates an SPQR tree T for graph G rooted at the first edge of G.
edge updateInsertedEdge(edge e) override
Updates the whole data structure after a new edge e has been inserted into G.
const Graph & tree() const override
Returns a reference to the tree T.
edge rootEdge() const override
Returns the edge of G at which T is rooted.
void cpRec(node v, PertinentGraph &Gp) const override
Recursively performs the task of adding edges (and nodes) to the pertinent graph Gp for each involved...
NodeType typeOf(node v) const override
Returns the type of node v.
edge m_rootEdge
edge of G at which T is rooted
const Skeleton & skeletonOfReal(edge e) const override
Returns the skeleton that contains the real edge e.
void init(edge e)
Initialization (called by constructors).
List< node > nodesOfType(NodeType t) const override
Returns the list of all nodes with type t.
SList< node > & findPath(node s, node t)
Finds the shortest path between the two sets of vertices of T which s and t of G belong to.
DynamicSPQRTree(Graph &G, edge e)
Creates an SPQR tree T for graph G rooted at the edge e.
Skeleton & skeleton(node v) const override
Returns the skeleton of node v.
node updateInsertedNode(edge e, edge f) override
Updates the whole data structure after a new vertex has been inserted into G by splitting an edge int...
node rootTreeAt(edge e) override
Roots T at edge e and returns the new root node of T.
EdgeArray< edge > m_skelEdge
copies of real and virtual edges in their skeleton graphs (invalid, if the skeleton does not actually...
int numberOfRNodes() const override
Returns the number of R-nodes in T.
edge copyOfReal(edge e) const override
Returns the skeleton edge that corresponds to the real edge e.
node rootTreeAt(node v) override
Roots T at node v and returns v.
int numberOfPNodes() const override
Returns the number of P-nodes in T.
Skeleton graphs of nodes in a dynamic SPQR-tree.
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).
Encapsulates a pointer to a list element.
bool valid() const
Returns true iff the iterator points to an element.
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
Pertinent graphs of nodes in an SPQR-tree.
Singly linked lists (maintaining the length of the list).
Linear-time implementation of static SPQR-trees.
NodeType
The type of a tree node in T.
Skeleton graphs of nodes in an SPQR-tree.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.