53template<
typename TCost>
63 return call(graph,
nullptr, s,
t, edgeList,
e_st);
71 return call(graph, &weight, s,
t, edgeList,
e_st);
86template<
typename TCost>
100 if (
e_st !=
nullptr) {
107 for (
edge e : edges) {
114 for (; i < (*weight)[e]; i++) {
128 orig = [&](
edge e) ->
edge {
return mapE[m_gc->original(e)]; };
137 if (
e_st !=
nullptr) {
140 e_st = m_gc->searchEdge(m_gc->copy(s), m_gc->copy(
t));
153 queue.append(adj->theEdge());
154 prev[adj->theEdge()] = source;
165 if (
spPred[v] ==
nullptr) {
168 direction[
eCand] = dir;
186 }
while (v != source);
194 if (prev[adj->theEdge()] ==
nullptr) {
195 queue.append(adj->theEdge());
196 prev[adj->theEdge()] = v;
Includes declaration of dual graph class.
Declaration of graph copy classes.
Template of base class of min-st-cut algorithms.
Declaration and implementation of list-based queues (classes QueuePure<E> and Queue<E>).
Class for adjacency list elements.
Combinatorial embeddings of planar graphs with modification functionality.
A dual graph including its combinatorial embedding of an embedded graph.
const edge & primalEdge(edge e) const
Returns the edge in the primal graph corresponding to e.
const node & dualNode(face f) const
Returns the node in the dual graph corresponding to f.
Dynamic arrays indexed with edges.
Class for the representation of edges.
adjEntry adjSource() const
Returns the corresponding adjacancy entry at source node.
adjEntry adjTarget() const
Returns the corresponding adjacancy entry at target node.
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.
Data type for general directed graphs (adjacency list representation).
void allEdges(CONTAINER &edgeContainer) const
Returns a container with all edges of the graph.
Doubly linked lists (maintaining the length of the list).
void clear()
Removes all elements from the list.
iterator pushBack(const E &x)
Adds element x at the end of the list.
void del(iterator it)
Removes it from the list.
iterator begin()
Returns an iterator to the first element of the list.
iterator end()
Returns an iterator to one-past-last element of the list.
Min-st-cut algorithm, that calculates the cut by doing a depth first search over the dual graph of of...
virtual bool call(const Graph &graph, node s, node t, List< edge > &edgeList, edge e_st=nullptr) override
The actual algorithm call.
virtual bool call(const Graph &graph, const EdgeArray< TCost > &weight, node s, node t, List< edge > &edgeList, edge e_st=nullptr) override
The actual algorithm call.
bool preprocessingDual(const Graph &graph, GraphCopy &gc, CombinatorialEmbedding &CE, node source, node target, edge e_st)
This method preprocesses gc for minstcut calculations, by adding an st-edge if needed and embedding g...
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
internal::GraphObjectContainer< AdjElement > adjEntries
The container containing all entries in the adjacency list of this node.
Implementation of list-based queues.
Declaration of extended graph algorithms.
Implementation of Dijkstra's single source shortest path algorithm.
EdgeElement * edge
The type of edges.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.