Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

DynamicBCTree.h
Go to the documentation of this file.
1 
32 #pragma once
33 
35 
36 namespace ogdf {
37 
55  friend class PlanarAugmentation;
56  friend class PlanarAugmentationFix;
57 
58 protected:
71 
85 
89  void init();
91 
103  node unite(node uB, node vB, node wB);
104 
111  node find(node vB) const;
113 
121  node parent(node vB) const override;
122 
133  node condensePath(node sG, node tG);
135 
136 public:
147  explicit DynamicBCTree(Graph& G, bool not_connected = false)
148  : DynamicBCTree(G, nullptr, not_connected) { }
149 
159  explicit DynamicBCTree(Graph& G, node vG, bool not_connected = false)
160  : BCTree(G, vG, not_connected) {
161  init();
162  }
163 
165 
181  node bccomp(node vH) const override;
182 
193  node bccomp(edge eH) const override;
194 
196 
213  node repVertex(node uG, node vB) const override { return BCTree::repVertex(uG, find(vB)); }
214 
247  node cutVertex(node uB, node vB) const override {
248  return BCTree::cutVertex(find(uB), find(vB));
249  }
250 
252 
269  virtual edge updateInsertedEdge(edge eG);
270 
288  virtual node updateInsertedNode(edge eG, edge fG);
289 
299  edge insertEdge(node sG, node tG) { return updateInsertedEdge(m_G.newEdge(sG, tG)); }
300 
309  node insertNode(edge eG) { return updateInsertedNode(eG, m_G.split(eG)); }
310 
312 
327  node bComponent(node uG, node vG) const;
328 
330 };
331 
332 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::BCTree
Static BC-trees.
Definition: BCTree.h:55
ogdf::DynamicBCTree::DynamicBCTree
DynamicBCTree(Graph &G, bool not_connected=false)
Definition: DynamicBCTree.h:147
ogdf::DynamicBCTree::m_bNode_degree
NodeArray< int > m_bNode_degree
Array that contains for each proper BC-tree-vertex its degree.
Definition: DynamicBCTree.h:84
ogdf::DynamicBCTree::m_bNode_owner
NodeArray< node > m_bNode_owner
Array that contains for each BC-tree-vertex its parent in its UNION/FIND-tree structure.
Definition: DynamicBCTree.h:70
ogdf::PlanarAugmentation
The algorithm for planar biconnectivity augmentation (Mutzel, Fialko).
Definition: PlanarAugmentation.h:59
BCTree.h
Declaration of class BCTree.
ogdf::DynamicBCTree::insertNode
node insertNode(edge eG)
Inserts a new vertex into the original graph and updates the BC-tree.
Definition: DynamicBCTree.h:309
ogdf::DynamicBCTree::insertEdge
edge insertEdge(node sG, node tG)
Inserts a new edge into the original graph and updates the BC-tree.
Definition: DynamicBCTree.h:299
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::PlanarAugmentationFix
The algorithm for biconnectivity augmentation with fixed combinatorial embedding.
Definition: PlanarAugmentationFix.h:46
ogdf::graphics::init
void init()
Definition: graphics.h:446
ogdf::DynamicBCTree::DynamicBCTree
DynamicBCTree(Graph &G, node vG, bool not_connected=false)
A constructor.
Definition: DynamicBCTree.h:159
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::DynamicBCTree::repVertex
node repVertex(node uG, node vB) const override
Definition: DynamicBCTree.h:213
ogdf::BCTree::cutVertex
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...
ogdf::EdgeElement
Class for the representation of edges.
Definition: Graph_d.h:356
ogdf::DynamicBCTree::cutVertex
node cutVertex(node uB, node vB) const override
Returns the copy of a cut-vertex in the biconnected components graph which belongs to a certain B-com...
Definition: DynamicBCTree.h:247
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::DynamicBCTree
Dynamic BC-trees.
Definition: DynamicBCTree.h:54
ogdf::BCTree::repVertex
virtual node repVertex(node uG, node vB) const
Returns a vertex of the biconnected components graph corresponding to a given vertex of the original ...
Minisat::Internal::find
static bool find(V &ts, const T &t)
Definition: Alg.h:47