realizes Hopcroft/Tarjan algorithm for finding the triconnected components of a biconnected multi-graph
More...
#include <ogdf/graphalg/Triconnectivity.h>
|
void | assembleTriconnectedComponents () |
| merges split-components into triconnected components More...
|
|
void | buildAcceptableAdjStruct (const Graph &G) |
| constructs ordered adjaceny lists More...
|
|
bool | checkSepPair (edge eVirt) |
|
void | delHigh (edge e) |
|
void | DFS1 (const Graph &G, node v, node u) |
| first dfs traversal More...
|
|
void | DFS1 (const Graph &G, node v, node u, node &s1) |
| special version for triconnectivity tes More...
|
|
void | DFS2 (const Graph &G) |
| the second dfs traversal More...
|
|
int | high (node v) |
| returns high(v) value More...
|
|
CompStruct & | newComp () |
| create a new empty component More...
|
|
CompStruct & | newComp (CompType t) |
| create a new empty component of type t More...
|
|
void | pathFinder (const Graph &G, node v) |
|
void | pathSearch (const Graph &G, node v) |
| finding of split components More...
|
|
bool | pathSearch (const Graph &G, node v, node &s1, node &s2) |
|
void | printOs (edge e) |
| debugging stuff More...
|
|
void | printStacks () |
|
void | splitMultiEdges () |
| splits bundles of multi-edges into bonds and creates a new virtual edge in GC. More...
|
|
bool | TSTACK_notEOS () |
| returns true iff end-of-stack marker is not on top of TSTACK More...
|
|
void | TSTACK_push (int h, int a, int b) |
| push a triple on TSTACK More...
|
|
void | TSTACK_pushEOS () |
| push end-of-stack marker on TSTACK More...
|
|
realizes Hopcroft/Tarjan algorithm for finding the triconnected components of a biconnected multi-graph
Definition at line 46 of file Triconnectivity.h.
◆ CompType
type of split-components / triconnected components
Enumerator |
---|
bond | |
polygon | |
triconnected | |
Definition at line 69 of file Triconnectivity.h.
◆ EdgeType
type of edges with respect to palm tree
Enumerator |
---|
unseen | |
tree | |
frond | |
removed | |
Definition at line 142 of file Triconnectivity.h.
◆ Triconnectivity() [1/3]
ogdf::Triconnectivity::Triconnectivity |
( |
const Graph & |
G | ) |
|
|
explicit |
Divides G into triconnected components.
- Parameters
-
◆ Triconnectivity() [2/3]
ogdf::Triconnectivity::Triconnectivity |
( |
const Graph & |
G, |
|
|
bool & |
isTric, |
|
|
node & |
s1, |
|
|
node & |
s2 |
|
) |
| |
Tests G for triconnectivity.
- Parameters
-
G | graph |
isTric | true if G is triconnected, false otherwise. |
s1 | first vertex of separation pair if G is biconnected, cut vertex of G if G is not biconnected, nullptr if G is not connected. |
s2 | second vertex of separation pair if G is biconnected, nullptr otherwise. |
◆ Triconnectivity() [3/3]
◆ ~Triconnectivity()
ogdf::Triconnectivity::~Triconnectivity |
( |
| ) |
|
◆ assembleTriconnectedComponents()
void ogdf::Triconnectivity::assembleTriconnectedComponents |
( |
| ) |
|
|
private |
merges split-components into triconnected components
◆ buildAcceptableAdjStruct()
void ogdf::Triconnectivity::buildAcceptableAdjStruct |
( |
const Graph & |
G | ) |
|
|
private |
constructs ordered adjaceny lists
◆ checkComp()
bool ogdf::Triconnectivity::checkComp |
( |
| ) |
|
Checks if computed triconnected componets are correct.
- Precondition
- checkComp() assumes that the graph is simple!
◆ checkSepPair()
bool ogdf::Triconnectivity::checkSepPair |
( |
edge |
eVirt | ) |
|
|
private |
◆ delHigh()
void ogdf::Triconnectivity::delHigh |
( |
edge |
e | ) |
|
|
inlineprivate |
◆ DFS1() [1/2]
void ogdf::Triconnectivity::DFS1 |
( |
const Graph & |
G, |
|
|
node |
v, |
|
|
node |
u |
|
) |
| |
|
private |
◆ DFS1() [2/2]
special version for triconnectivity tes
◆ DFS2()
void ogdf::Triconnectivity::DFS2 |
( |
const Graph & |
G | ) |
|
|
private |
◆ high()
int ogdf::Triconnectivity::high |
( |
node |
v | ) |
|
|
inlineprivate |
◆ newComp() [1/2]
◆ newComp() [2/2]
◆ pathFinder()
void ogdf::Triconnectivity::pathFinder |
( |
const Graph & |
G, |
|
|
node |
v |
|
) |
| |
|
private |
◆ pathSearch() [1/2]
void ogdf::Triconnectivity::pathSearch |
( |
const Graph & |
G, |
|
|
node |
v |
|
) |
| |
|
private |
finding of split components
◆ pathSearch() [2/2]
bool ogdf::Triconnectivity::pathSearch |
( |
const Graph & |
G, |
|
|
node |
v, |
|
|
node & |
s1, |
|
|
node & |
s2 |
|
) |
| |
|
private |
◆ printOs()
void ogdf::Triconnectivity::printOs |
( |
edge |
e | ) |
|
|
private |
◆ printStacks()
void ogdf::Triconnectivity::printStacks |
( |
| ) |
|
|
private |
◆ splitMultiEdges()
void ogdf::Triconnectivity::splitMultiEdges |
( |
| ) |
|
|
private |
splits bundles of multi-edges into bonds and creates a new virtual edge in GC.
◆ TSTACK_notEOS()
bool ogdf::Triconnectivity::TSTACK_notEOS |
( |
| ) |
|
|
inlineprivate |
returns true iff end-of-stack marker is not on top of TSTACK
Definition at line 125 of file Triconnectivity.h.
◆ TSTACK_push()
void ogdf::Triconnectivity::TSTACK_push |
( |
int |
h, |
|
|
int |
a, |
|
|
int |
b |
|
) |
| |
|
inlineprivate |
◆ TSTACK_pushEOS()
void ogdf::Triconnectivity::TSTACK_pushEOS |
( |
| ) |
|
|
inlineprivate |
◆ m_A
◆ m_component
◆ m_DEGREE
NodeArray<int> ogdf::Triconnectivity::m_DEGREE |
|
private |
◆ m_ESTACK
◆ m_FATHER
◆ m_HIGHPT
list of fronds entering v in the order they are visited
Definition at line 192 of file Triconnectivity.h.
◆ m_IN_ADJ
◆ m_IN_HIGH
◆ m_LOWPT1
NodeArray<int> ogdf::Triconnectivity::m_LOWPT1 |
|
private |
◆ m_LOWPT2
NodeArray<int> ogdf::Triconnectivity::m_LOWPT2 |
|
private |
◆ m_ND
◆ m_NEWNUM
NodeArray<int> ogdf::Triconnectivity::m_NEWNUM |
|
private |
◆ m_newPath
bool ogdf::Triconnectivity::m_newPath |
|
private |
◆ m_NODEAT
◆ m_NUMBER
NodeArray<int> ogdf::Triconnectivity::m_NUMBER |
|
private |
◆ m_numComp
int ogdf::Triconnectivity::m_numComp |
◆ m_numCount
int ogdf::Triconnectivity::m_numCount |
|
private |
◆ m_pGC
◆ m_START
EdgeArray<bool> ogdf::Triconnectivity::m_START |
|
private |
◆ m_start
node ogdf::Triconnectivity::m_start |
|
private |
◆ m_top
int ogdf::Triconnectivity::m_top |
|
private |
◆ m_TREE_ARC
◆ m_TSTACK_a
int * ogdf::Triconnectivity::m_TSTACK_a |
|
private |
◆ m_TSTACK_b
int * ogdf::Triconnectivity::m_TSTACK_b |
|
private |
◆ m_TSTACK_h
int* ogdf::Triconnectivity::m_TSTACK_h |
|
private |
◆ m_TYPE
The documentation for this class was generated from the following file: