Digraph.prototype.incidentEdges = function(u, v) { if (arguments.length > 1) { return Set.union([this.outEdges(u, v), this.outEdges(v, u)]).keys(); } else { return Set.union([this.inEdges(u), this.outEdges(u)]).keys(); } };
Digraph.prototype.outEdges = function(source, target) { this._strictGetNode(source); var results = Set.union(util.values(this._outEdges[source])).keys(); if (arguments.length > 1) { this._strictGetNode(target); results = results.filter(function(e) { return this.target(e) === target; }, this); } return results; };
Digraph.prototype.inEdges = function(target, source) { this._strictGetNode(target); var results = Set.union(util.values(this._inEdges[target])).keys(); if (arguments.length > 1) { this._strictGetNode(source); results = results.filter(function(e) { return this.source(e) === source; }, this); } return results; };
Digraph.prototype.neighbors = function(u) { return Set.union([this.successors(u), this.predecessors(u)]).keys(); };