Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
SeparatorDualFC.h
Go to the documentation of this file.
1
32#pragma once
33
39
40namespace ogdf {
41
43
47public:
53 SeparatorDualFC(bool useTriBFS = false) : useTriangulatingBFS {useTriBFS} { }
54
56 virtual double getMaxSeparatorSize(int n) const override { return -1; }
57
58protected:
60 std::shared_ptr<ArrayBFSTree> tree;
61
65 void makeTree();
66
67 virtual bool doSeparate(const Graph& G, List<node>& separator, List<node>& first,
68 List<node>& second) override;
69
78 virtual bool findCycle(List<node>& separator, List<node>& first, List<node>& second) override;
79
80 virtual std::string getSpecificName() const override {
81 std::string name = "DualFC";
82 if (useTriangulatingBFS) {
83 name += "-triBFS";
84 }
85 return name;
86 }
87};
88
89}
declaration and implementation of FaceArray class
Declaration of base class of all planar separator algorithms.
Declaration of class SeparatorDual.
Declaration of class SeparatorDualHelper.
Declaration of class SeparatorLiptonTarjanFC.
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:521
Doubly linked lists (maintaining the length of the list).
Definition List.h:1435
Computes planar separators by applying the Fundamental Cycle Lemma directly, without trying tree leve...
virtual std::string getSpecificName() const override
Returns the unique name of the core algorithm, to be combined with postprocessors later.
std::shared_ptr< ArrayBFSTree > tree
virtual bool findCycle(List< node > &separator, List< node > &first, List< node > &second) override
Finds a suitable cycle by performing a DFS over the faces of the dual of the graph.
virtual bool doSeparate(const Graph &G, List< node > &separator, List< node > &first, List< node > &second) override
Core of the specific separation algorithm - override this in inheriting classes.
void makeTree()
Builds the BFS tree.
virtual double getMaxSeparatorSize(int n) const override
Maximum separator size depends on diameter of graph, so returns -1.
SeparatorDualFC(bool useTriBFS=false)
Constructor.
Computes planar separators using Fundamental Cycles.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition config.h:101
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.