Main Page Modules Class Hierarchy Alphabetical List Compound List File List Compound Members File Members
The Vienna Graph Template Library (VGTL) is a generic graph library with generic programming structure. It uses STL containers like
vector to organize the internal structure of the graphs.
A collection of walking algorithms for analyzing and working with the graphs has been implemented as generic algorithms. Similar to STL iterators, which are used to handle data in containers independently of the container implementation, for graphs the walker concept (see Section Walker) is introduced.
A walker is, like an STL iterator, a generalization of a pointer. It dereferences to the data a graph node stores.
There are two different kinds of walkers: recursive walker and iterative walker.
A recursive walker is a pointer to graph nodes, which can be moved around on the graph by changing the node it points to. Walkers can move along the edges of the graph to new nodes. The operators reserved for that are
<< for moving along in-edges and
>> for moving along out-edges. A recursive walker does not have an internal status, so the walking has to be done recursively.
An iterative walker (automatic walker) can walk through a graph without guidance. Simply using the operators
--, the walker itself searches for the next node in the walk.
The first few of the collection of graph containers are the $n$-ary trees and forests. These trees come in various flavors: standard trees, labelled trees, with and without data hooks. Trees provide iterative walkers and recursive walkers.
The next more complicated graphs are directed graphs. There are two classes implemented. Standard directed graphs and directed acyclic graphs (DAGs). Directed graphs provide recursive walkers only.
Generic graphs don't have directed edges. They are the most general class of graphs, and special walking algorithms are provided for them. Generic graphs only have recursive walkers.
Generated on Tue Nov 4 01:41:23 2003 for Vienna Graph Template Library by