1- # Your basic graph
1+ # Your basic graph [ ![ GoDoc ] ( https://godoc.org/github.com/yourbasic/graph?status.svg )] [ godoc-graph ]
22
33### Golang library of basic graph algorithms
44
@@ -28,6 +28,7 @@ directed edges (v, w) and (w, v), both of cost c.
2828A self-loop, an edge connecting a vertex to itself,
2929is both directed and undirected.
3030
31+
3132### Graph data structures
3233
3334The type ` Mutable ` represents a directed graph with a fixed number
@@ -42,26 +43,56 @@ with its adjacent vertices. This makes for fast and predictable
4243iteration: the Visit method produces its elements by reading
4344from a fixed sorted precomputed list.
4445
46+
4547### Virtual graphs
4648
47- The subpackage ` graph/build ` offers a tool for building virtual graphs.
49+ The subpackage ` graph/build ` offers a tool for building graphs of type ` Virtual ` .
50+
4851In a virtual graph no vertices or edges are stored in memory,
4952they are instead computed as needed. New virtual graphs are constructed
5053by composing and filtering a set of standard graphs, or by writing
5154functions that describe the edges of a graph.
5255
56+ The following standard graphs are predefined:
57+
58+ - empty graphs,
59+ - complete graphs and complete bipartite graphs,
60+ - grid graphs and complete * k* -ary trees,
61+ - cycle graphs and circulant graphs,
62+ - and hypergraphs.
63+
64+ The following operations are supported:
65+
66+ - adding and deleting sets of edges,
67+ - adding cost functions,
68+ - filtering graphs by edge functions,
69+ - complement, intersection and union,
70+ - subgraphs,
71+ - connecting graphs at a single vertex,
72+ - joining two graphs by a set of edges,
73+ - matching two graphs by a set of edges,
74+ - cartesian product and tensor product.
75+
76+ Non-virtual graphs can be imported, and used as building blocks,
77+ by the ` Specific ` function. Virtual graphs don't need to be “exported”;
78+ they implement the ` Iterator ` interface and hence can be used directly
79+ by any algorithm in the graph package.
80+
81+
5382### Installation
5483
5584Once you have [ installed Go] [ golang-install ] , run this command
5685to install the ` graph ` package:
5786
5887 go get github.com/yourbasic/graph
88+
5989
6090### Documentation
6191
6292There is an online reference for the package at
6393[ godoc.org/github.com/yourbasic/graph] [ godoc-graph ] .
6494
95+
6596### Roadmap
6697
6798* The API of this library is frozen.
0 commit comments