A simple c# graph library with a fluent interface for graph construction and a
minumum of syntactic noise.
It is not industrial strength, the main emphasis is on prototyping and testing
graph algorithms. Graphs can be built quickly and individual nodes can contain
an arbitrary data type. Even anonymous types are alowed through the builder
interface (see below for an example).
[x]
/ \
[y] [w]
\ /
[a]
/ \
[b] [d]
| | \
[c] [e] [f]
var g1 = Graph.Node("a",
Graph.Node("b",
Graph.Node("c")),
Graph.Node("d",
Graph.Node("e"),
Graph.Node("f")));
var g2 = Graph.Node("x",
Graph.Node("y",
g1),
Graph.Node("w",
g1));
var g = Graph.Node(new { Name="n1", Cost=2.5m },
Graph.Node(new { Name="n2", Cost=2.5m }),
Graph.Node(new { Name="n3", Cost=5.31m }));
- Fibonacci heap (for better bound on Dijkstra’s Shortest-Path)
- Boruvka’s minimum spanning tree (paralellized?)
http://www.ics.uci.edu/~eppstein/161/960206.html - Bellman-Ford shortest-path
- Suffix tree
- Red/Black or other ballanced binary tree