#include <DynamicBCTree.h>

Public Member Functions | |
| DynamicBCTree (Graph &G, bool callInitConnected=false) | |
| A constructor. | |
| DynamicBCTree (Graph &G, node vG, bool callInitConnected=false) | |
| A constructor. | |
| node | bcproper (node vG) const |
| returns a BC-tree-vertex representing a biconnected component which a given vertex of the original graph is belonging to. | |
| node | bcproper (edge eG) const |
| returns the BC-tree-vertex representing the biconnected component which a given edge of the original graph is belonging to. | |
| node | repVertex (node uG, node vB) const |
| returns a vertex of the biconnected components graph corresponding to a given vertex of the original graph and belonging to the representation of a certain biconnected component given by a vertex of the BC-tree. | |
| 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-component and leads to another B-component. | |
| virtual edge | updateInsertedEdge (edge eG) |
| Update of the dynamic BC-tree after edge insertion into the original graph. | |
| virtual node | updateInsertedNode (edge eG, edge fG) |
| Update of the dynamic BC-tree after vertex insertion into the original graph. | |
| edge | insertEdge (node sG, node tG) |
| inserts a new edge into the original graph and updates the BC-tree. | |
| node | insertNode (edge eG) |
| inserts a new vertex into the original graph and updates the BC-tree. | |
| node | bComponent (node uG, node vG) const |
| returns the BC-tree-vertex representing the B-component which two given vertices of the original graph are belonging to. | |
Protected Member Functions | |
| void | init () |
| Initialization of m_bNode_owner and m_bNode_degree. | |
| node | unite (node uB, node vB, node wB) |
| The UNION function of the UNION/FIND structure. | |
| node | find (node vB) const |
| The FIND function of the UNION/FIND structure. | |
| node | parent (node vB) const |
| returns the parent of a given BC-tree-vertex. | |
| node | condensePath (node sG, node tG) |
| performs path condensation. | |
Protected Attributes | |
| NodeArray< node > | m_bNode_owner |
| Array that contains for each BC-tree-vertex its parent in its UNION/FIND-tree structure. | |
| NodeArray< int > | m_bNode_degree |
| Array that contains for each proper BC-tree-vertex its degree. | |
Friends | |
| class | PlanarAugmentation |
| class | PlanarAugmentationFix |
This class provides dynamic BC-trees.
The main difference of the dynamic BC-tree structure compared to the static one implemented by the class BCTree is, that B- and C-components are not any longer represented by single vertices of a BC-tree graph structure but by root vertices of UNION/FIND-trees. This allows path condensation within the BC-tree, when edges are inserted into the original graph. Path condensation is done by gathering BC-tree-vertices into a UNION/FIND-tree. However, the original vertices of the BC-tree remain in the m_B graph, but only those being the roots of their respective UNION/FIND-tree are proper representants of the biconnected components of the original graph.
Definition at line 76 of file DynamicBCTree.h.
| ogdf::DynamicBCTree::DynamicBCTree | ( | Graph & | G, | |
| bool | callInitConnected = false | |||
| ) | [inline] |
A constructor.
This constructor does only call BCTree::BCTree() and DynamicBCTree::init(). DynamicBCTree(G) is equivalent to DynamicBCTree(G, G.firstNode()).
| G | is the original graph. |
Definition at line 164 of file DynamicBCTree.h.
A constructor.
This constructor does only call BCTree::BCTree() and DynamicBCTree::init().
| G | is the original graph. | |
| vG | is the vertex of the original graph which the DFS algorithm starts with. |
Definition at line 173 of file DynamicBCTree.h.
| void ogdf::DynamicBCTree::init | ( | ) | [protected] |
The UNION function of the UNION/FIND structure.
| uB | is a vertex of the BC-tree representing a B-component. | |
| vB | is a vertex of the BC-tree representing a C-component. | |
| wB | is a vertex of the BC-tree representing a B-component. |
uB and wB have to be adjacent to vB.
The FIND function of the UNION/FIND structure.
| vB | is any vertex of m_B. |
returns the parent of a given BC-tree-vertex.
| vB | is any vertex of m_B or NULL. |
Reimplemented from ogdf::BCTree.
performs path condensation.
This member function condenses the path from bcproper(sG) to bcproper(tG) in the BC-tree into one single B-component by calling findPath() and subsequently unite().
| sG | is a vertex of the original graph. | |
| tG | is a vertex of the original graph. |
returns a BC-tree-vertex representing a biconnected component which a given vertex of the original graph is belonging to.
| vG | is a vertex of the original graph. |
Reimplemented from ogdf::BCTree.
returns the BC-tree-vertex representing the biconnected component which a given edge of the original graph is belonging to.
| eG | is an edge of the original graph. |
Reimplemented from ogdf::BCTree.
returns a vertex of the biconnected components graph corresponding to a given vertex of the original graph and belonging to the representation of a certain biconnected component given by a vertex of the BC-tree.
| uG | is a vertex of the original graph. | |
| vB | is any vertex of m_B. |
Reimplemented from ogdf::BCTree.
Definition at line 219 of file DynamicBCTree.h.
returns the copy of a cut-vertex in the biconnected components graph which belongs to a certain B-component and leads to another B-component.
If two BC-tree-vertices are neighbours, then the biconnected components represented by them have exactly one cut-vertex in common. But there are several copies of this cut-vertex in the biconnected components graph, namely one copy for each biconnected component which the cut-vertex is belonging to. The member function rep() had been designed for returning the very copy of the cut-vertex belonging to the copy of the unambiguous C-component which it is belonging to, whereas this member function is designed to return the very copy of the cut-vertex connecting two biconnected components which belongs to the copy of the second one.
| uB | is any vertex of m_B. | |
| vB | is any vertex of m_B. |
Reimplemented from ogdf::BCTree.
Definition at line 252 of file DynamicBCTree.h.
Update of the dynamic BC-tree after edge insertion into the original graph.
This member function performs on-line maintenance of the dynamic BC-tree according to J. Westbrook and R. E. Tarjan, Maintaining Bridge-Connected and Biconnected Components On-Line, Algorithmica (1992) 7:433-464.
| eG | is a newly inserted edge of the original graph. |
amortized time and the coponents graph in
amortized time per insertEdge() operation, where k is the number of such operations. Reimplemented in ogdf::DynamicSPQRForest, and ogdf::DynamicSPQRTree.
Update of the dynamic BC-tree after vertex insertion into the original graph.
This member function performs on-line maintenance of the dynamic BC-tree according to J. Westbrook and R. E. Tarjan, Maintaining Bridge-Connected and Biconnected Components On-Line, Algorithmica (1992) 7:433-464.
| eG | is the incoming edge of the newly inserted vertex which has been generated by a Graph::split() operation. | |
| fG | is the outgoing edge of the newly inserted vertex which has been generated by a Graph::split() operation. |
time. Reimplemented in ogdf::DynamicSPQRForest, and ogdf::DynamicSPQRTree.
inserts a new edge into the original graph and updates the BC-tree.
This member function inserts a new edge between sG and tG into the original graph and then calls updateInsertedEdge().
| sG | is a vertex of the original graph. | |
| tG | is a vertex of the original graph. |
Definition at line 299 of file DynamicBCTree.h.
inserts a new vertex into the original graph and updates the BC-tree.
This member function inserts a new vertex into the original graph by splitting the edge eG and then calls updateInsertedNode().
| eG | is an edge of the original graph. |
Definition at line 308 of file DynamicBCTree.h.
returns the BC-tree-vertex representing the B-component which two given vertices of the original graph are belonging to.
| uG | is a vertex of the original graph. | |
| vG | is a vertex of the original graph. |
Reimplemented from ogdf::BCTree.
friend class PlanarAugmentation [friend] |
Definition at line 78 of file DynamicBCTree.h.
friend class PlanarAugmentationFix [friend] |
Definition at line 79 of file DynamicBCTree.h.
NodeArray<node> ogdf::DynamicBCTree::m_bNode_owner [mutable, protected] |
Array that contains for each BC-tree-vertex its parent in its UNION/FIND-tree structure.
For each vertex vB of the BC-tree structure:
Definition at line 94 of file DynamicBCTree.h.
NodeArray<int> ogdf::DynamicBCTree::m_bNode_degree [protected] |
Array that contains for each proper BC-tree-vertex its degree.
For each vertex vB of the BC-tree structure:
Definition at line 107 of file DynamicBCTree.h.