CHAPTER I.
GRAPHS
A graph is a collection of nodes and edges
let graph = new Graph()
This creates an empty graph with no nodes or edges
Graphs don't exist in 2D space (or any space), they are an abstract map showing connections between nodes.
§ Nodes and Edges
The graph holds onto all its nodes and edges in arrays.
The types are Graph Node and Graph Edge.
graph.nodes = [] // array of GraphNode
graph.edges = [] // array of GraphEdge
This operation makes a new node and returns a reference to it.
let node= graph.newNode ()// node is a GraphNode
A new edge needs to know the 2 nodes its connecting.
let edge = graph.newEdge (node1 , node2 ) // edge is a GraphEdge
You can always grab a node or an edge again
graph.newNode ()
let node = graph.nodes [0 ] // the first node
§ Nodes
This graph is interactive
graph.nodes [ ].adjacentNodes ()
graph.edges [ ].adjacentNodes ()
Two nodes are adjacent if they are connected by an edge
§ Edges
An edge connects two nodes
graph.edges [0 ] // the first edge
graph.edges .length // total number of edges
graph.nodes [ ].adjacentEdges ()
graph.edges [ ].adjacentEdges ()
Invalid edges
Circular: an edge cannot connect the same node at both ends
Duplicate: the same 2 nodes cannot have more than 1 edge between them
§ Remove
graph.removeNode (node )
When removing a node, any edges which share the node will be removed also.
graph.removeEdge (edge )
Removing an edge will do simply that and the nodes remain untouched.
§ Clean
graph.clean ()
Cleaning a graph removes duplicate and circular edges. You can also target specific edges:
graph.removeEdge (edge )
graph.removeEdgeBetween (node1 , node2 )
Removing Nodes:
graph.removeNode (node )
graph.removeIsolatedNodes ()
Isolated nodes are nodes that aren't connected to an edge.
graph.mergeNodes (node1 ,node2 )
Each of these functions returns a GraphClean Object
{
edges: {total: number , duplicate: number , circular: number },
nodes: {total: number , isolated: number }
}
Each of the entries in a GraphClean object is the number of elements of that type removed