Fork me on GitHub


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.