UNPKG

edges-to-adjacency-list

Version:
33 lines (30 loc) 720 B
"use strict" module.exports = edgeToAdjacency var uniq = require("uniq") function edgeToAdjacency(edges, numVertices) { var numEdges = edges.length if(typeof numVertices !== "number") { numVertices = 0 for(var i=0; i<numEdges; ++i) { var e = edges[i] numVertices = Math.max(numVertices, e[0], e[1]) } numVertices = (numVertices|0) + 1 } numVertices = numVertices|0 var adj = new Array(numVertices) for(var i=0; i<numVertices; ++i) { adj[i] = [] } for(var i=0; i<numEdges; ++i) { var e = edges[i] adj[e[0]].push(e[1]) adj[e[1]].push(e[0]) } for(var j=0; j<numVertices; ++j) { uniq(adj[j], function(a, b) { return a - b }) } return adj }