54template<
class LISTITERATOR>
71template<
class LISTITERATOR>
87 edge e = adj->theEdge();
108template<
class LISTITERATOR>
125 edge e = adj->theEdge();
145template<
class LISTITERATOR>
159 edge e = adj->theEdge();
178template<
class NODELISTITERATOR,
class EDGELIST>
183 for (; it.valid(); it++) {
187 for (; it.valid(); it++) {
190 edge e = adj->theEdge();
238 return computeMinST(G.firstNode(), G, weight, pred, isInTree);
255 return computeMinST(G.firstNode(), G, weight, pred, isInTree);
292 pred.
init(G,
nullptr);
294 while (!
pq.empty()) {
295 const node v =
pq.topElement();
299 const node w = adj->twinNode();
300 const edge e = adj->theEdge();
301 if (pred[w] ==
nullptr && w != s) {
305 }
else if (!processed[w] && weight[e] <
pq.priority(w)) {
306 pq.decrease(w, weight[e]);
335 isInTree.
init(G,
false);
336 for (
node v = G.firstNode(); v; v = v->succ()) {
338 isInTree[pred[v]] =
true;
366 for (
edge e : G.edges) {
374 for (
node v : G.nodes) {
382 if (
uf.find(v) !=
uf.find(w)) {
383 uf.link(
uf.find(v),
uf.find(w));
Declaration of the wrapper class of the Boyer-Myrvold planarity test.
Derived class of GraphObserver providing additional functionality to handle clustered graphs.
Implementation of disjoint sets data structures (union-find functionality).
Priority queue interface wrapping various heaps.
Class for adjacency list elements.
The parameterized class Array implements dynamic arrays of type E.
Wrapper class used for preprocessing and valid invocation of the planarity test.
virtual bool planarEmbed(Graph &G) override
Returns true, if G is planar, false otherwise. If true, G contains a planar embedding.
virtual bool isPlanar(const Graph &g) override
Returns true, iff a copy of the constant graph g is planar.
virtual bool planarEmbedPlanarGraph(Graph &G) override
Constructs a planar embedding of G. G has to be planar!
Representation of clustered graphs.
A Union/Find data structure for maintaining disjoint sets.
Dynamic arrays indexed with edges.
void init()
Reinitializes the array. Associates the array with no graph.
Class for the representation of edges.
node target() const
Returns the target node of the edge.
node source() const
Returns the source node of the edge.
Copies of graphs supporting edge splitting.
node copy(node v) const
Returns the node in the graph copy corresponding to v.
edge newEdge(edge eOrig)
Creates a new edge (v,w) with original edge eOrig.
Copies of graphs with mapping between nodes and edges.
Data type for general directed graphs (adjacency list representation).
edge newEdge(node v, node w)
Creates a new edge (v,w) and returns it.
virtual void delEdge(edge e)
Removes edge e from the graph.
Doubly linked lists (maintaining the length of the list).
Dynamic arrays indexed with nodes.
void init()
Reinitializes the array. Associates the array with no graph.
Class for the representation of nodes.
internal::GraphObjectContainer< AdjElement > adjEntries
The container containing all entries in the adjacency list of this node.
adjEntry firstAdj() const
Returns the first entry in the adjaceny list.
Prioritized queue interface wrapper for heaps.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
void makeCConnected(ClusterGraph &C, Graph &G, List< edge > &addedEdges, bool simple=true)
Makes a cluster graph c-connected by adding edges.
bool isCConnected(const ClusterGraph &C)
Returns true iff cluster graph C is c-connected.
void inducedSubgraph(Graph &G, NODELISTITERATOR &it, EDGELIST &E)
Computes the edges in a node-induced subgraph.
void inducedSubGraph(const Graph &G, LISTITERATOR start, Graph &subGraph)
Computes the subgraph induced by a list of nodes.
T makeMinimumSpanningTree(Graph &G, const EdgeArray< T > &weight)
Reduce a graph to its minimum spanning tree (MST) using Kruskal's algorithm.
T computeMinST(const Graph &G, const EdgeArray< T > &weight, EdgeArray< bool > &isInTree)
Computes a minimum spanning tree using Prim's algorithm.
bool planarEmbedPlanarGraph(Graph &G)
Constructs a planar embedding of G. It assumes that G is planar!
bool planarEmbed(Graph &G)
Returns true, if G is planar, false otherwise. If true is returned, G will be planarly embedded.
bool planarSTEmbed(Graph &graph, node s, node t)
s-t-planarly embeds a graph.
bool isSTPlanar(const Graph &graph, const node s, const node t)
Returns whether G is s-t-planar (i.e.
bool isPlanar(const Graph &G)
Returns true, if G is planar, false otherwise.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.