39namespace steiner_tree {
55 isInTree.
init(graph,
false);
60 for (
node t : terminals) {
78 const int v =
setID[e->source()];
79 const int w =
setID[e->target()];
80 if (
uf.find(v) !=
uf.find(w)) {
82 uf.link(
uf.find(v),
uf.find(w));
Definition of ogdf::steiner_tree::goemans::CoreEdgeModule class template.
Implementation of disjoint sets data structures (union-find functionality).
Declaration and implementation of NodeArray class.
An array that keeps track of the number of inserted elements; also usable as an efficient stack.
void push(E e)
Puts a new element in the buffer.
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.
Data type for general directed graphs (adjacency list representation).
int numberOfNodes() const
Returns the number of nodes in the graph.
internal::GraphObjectContainer< NodeElement > nodes
The container containing all node objects.
internal::GraphObjectContainer< EdgeElement > edges
The container containing all edge objects.
Doubly linked lists (maintaining the length of the list).
int size() const
Returns the number of elements in the list.
Dynamic arrays indexed with nodes.
Class for the representation of nodes.
Interface for core edge finder algorithms.
Computes a random set of core edges.
CoreEdgeRandomSpanningTree(std::minstd_rand &rng)
void call(const Graph &graph, const List< node > &terminals, EdgeArray< bool > &isInTree) const override
Compute a set of core edges.
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.