Bacon Theory
A graph theory library for node and the browser.
What is graph theory? Wikipedia
var bt = require('bacon-theory');
var graph = bt.Graph();
graph.createNodes(10);
node1 = graph.getNode(1);
node2 = graph.getNode(2);
node3 = graph.getNode(3);
graph.addEdge(node1, node2);
node1.isNeighbour(node2);
node1.isNeighbour(node3);
Installation
$ npm install -g bacon-theory
API
var bt = require('bacon-theory');
For full documentation, see the source or build the documentation grunt jsdoc
Graph
var graph = new bt.Graph();
Node
var graph = bt.Graph();
var node = bt.Node();
graph.addNode(node);
graph.nNodes();
Edge
var graph = bt.Graph();
graph.addNode();
graph.addNode();
graph.getNode(0).addEdge(graph.getNode(1));
autocreate
Pass in an array of arrays which represents a collection of nodes.
Integers as array values specify edges connecting to the n-th node (zero-indexed)
options.directed
specifies if the edges are directional (true) or bi-directed (false, default)
var options = {
directed: false
};
var graph = bt.autocreate([
[1],
[2,3],
[0],
[0]
], options);
TODO
- Provide helpers for calculating common graph properties
- Allow non-integer edge weights
- Export graph to JSON format
- Add in-browser tests
- More documentation and examples