Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

Graph Structures
[Data Structures]


Detailed Description

The implementation of combinatorial algorithms heavily relies on efficient graph implementations. LEMON offers data structures which are planned to be easily used in an experimental phase of implementation studies, and thereafter the program code can be made efficient by small modifications.

The most efficient implementation of diverse applications require the usage of different physical graph implementations. These differences appear in the size of graph we require to handle, memory or time usage limitations or in the set of operations through which the graph can be accessed. LEMON provides several physical graph structures to meet the diverging requirements of the possible users. In order to save on running time or on memory usage, some structures may fail to provide some graph features like edge or node deletion.

Alteration of standard containers need a very limited number of operations, these together satisfy the everyday requirements. In the case of graph strutures, different operations are needed which do not alter the physical graph, but gives an other view. If some nodes or edges have to be hidden or the reverse oriented graph have to be used, then this is the case. It also may happen that in a flow implemenation the residual graph can be accessed by an other algorithm, or a node-set is to be shrunk for an other algorithm. LEMON also provides a variety of graphs for these requirements called graph adaptors. Adaptors cannot be used alone but only in conjunction with other graph representation.

You are free to use the graph structure that fit your requirements the best, most graph algorithms and auxiliary data structures can be used with any graph structures.


Files

file  full_graph.h
 FullGraph and SymFullGraph classes.
file  list_graph.h
 ListGraph, SymListGraph classes.
file  smart_graph.h
 SmartGraph and SymSmartGraph classes.

Modules

 Adaptor Classes for Graphs
 This group contains several adaptor classes for graphs

The main parts of LEMON are the different graph structures, generic graph algorithms, graph concepts which couple these, and graph adaptors. While the previous notions are more or less clear, the latter one needs further explanation. Graph adaptors are graph classes which serve for considering graph structures in different ways.


Classes

class  FullGraph
 A full graph class. More...
class  UndirFullGraph
 An undirected full graph class. More...
class  GridGraph
 Grid graph class. More...
class  ListGraph
 A list graph class. More...
class  UndirListGraph
 An undirected list graph class. More...
class  SmartGraph
 A smart graph class. More...
class  UndirSmartGraph
 A smart undirected graph class. More...


Generated on Sat Aug 27 14:14:56 2005 for LEMON by  doxygen 1.4.4