Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

MaxAdjOrdering.h
Go to the documentation of this file.
1 
32 #pragma once
33 
35 #include <ogdf/basic/Graph.h>
37 #include <ogdf/basic/basic.h>
38 #include <ogdf/basic/geometry.h>
39 #include <ogdf/basic/graphics.h>
41 
42 namespace ogdf {
43 
54 private:
64  void m_calcAllMAOs_recursion(int n, ListPure<node> currentOrder, ListPure<node> currentUnsorted,
66 
79  void m_calcAllMAOs_recursion(int n, ListPure<node> currentOrder,
80  ListPure<ListPure<edge>> currentForest, ListPure<node> currentUnsorted, NodeArray<int> r,
82 
83 public:
91  ~MaxAdjOrdering();
92 
98  void calc(const Graph* G, ListPure<node>* MAO);
105  void calcBfs(const Graph* G, ListPure<node>* MAO);
106 
113  void calc(const Graph* G, node s, ListPure<node>* MAO);
114 
121  void calc(const Graph* G, ListPure<node>* MAO, ListPure<ListPure<edge>>* Forests);
122 
130  void calc(const Graph* G, node s, ListPure<node>* MAO, ListPure<ListPure<edge>>* Forests);
131 
137  void calcAll(const Graph* G, ListPure<ListPure<node>>* MAOs);
138 
145  void calcAll(const Graph* G, ListPure<ListPure<node>>* MAOs,
147 
154  void calcForest(const Graph& G, ListPure<node>* MAO, ListPure<ListPure<edge>>* F);
155 
159  void calcForest(const Graph& G, const ListPure<node>& MAO, ListPure<ListPure<edge>>* F);
160 
166  bool testIfMAO(const Graph* G, ListPure<node>* Ordering);
167 
173  bool testIfMAOBfs(const Graph* G, ListPure<node>* Ordering);
174 
175 
186  bool testIfAllMAOs(const Graph* G, ListPure<ListPure<node>>* Orderings,
187  ListPure<ListPure<node>>* Perms);
193  void visualize(GraphAttributes* GA, ListPure<node>* MAO);
194 
199  void visualize(GraphAttributes* GA, ListPure<node>* MAO, ListPure<ListPure<edge>>* F);
200 
204  void visualize(GraphAttributes* GA, const ListPure<node>& MAO, ListPure<ListPure<edge>>* F);
205 };
206 
207 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::GraphAttributes
Stores additional attributes of a graph (like layout information).
Definition: GraphAttributes.h:66
GraphAttributes.h
Declaration of class GraphAttributes which extends a Graph by additional attributes.
LinearLayout.h
This class is a simple layout that places nodes next to each other and draws edges as bows above the ...
Graph.h
Includes declaration of graph class.
graphics.h
Declaration of basic types for graphics.
AdjacencyOracle.h
Declaration of ogdf::AdjacencyOracle class.
geometry.h
Declaration of classes GenericPoint, GenericPolyline, GenericLine, GenericSegment,...
ogdf::MaxAdjOrdering
Calculate one or all Maximum Adjacency Ordering(s) of a given simple undirected graph.
Definition: MaxAdjOrdering.h:53
r
int r[]
Definition: hierarchical-ranking.cpp:8
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
ogdf::ListPure
Doubly linked lists.
Definition: List.h:44
basic.h
Basic declarations, included by all source files.
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233