Simple graph implementation and utility for graph traversal.
The implementation provides some base classes and interfaces for graph modeling.
A graph is build from the following components:
Node
which represents a single node in the graph model
Edge
that represents the connection between two nodes. Edges have always a direction.
Graph
which references the nodes manages the connections between nodes. Nodes and Edges are
always bound to their graph implementation.
The Traversal
utility allows to traverse the graph using depth-first or breadth-first algorithms.
It is also able to find loops in the graph.
Nodes can be flagged by categories to easily build subgraphs of certain nodes.
Edges always have a Label, that describes the purpose of the connection.
The implementations provided here are basic implementations and provide no special functionality like search or indexing.