- Go backend (server/)
- Frontend (web/, server/static/)
- Database and deployment files
- Scripts and docs
Co-Authored-By: 狸花猫/Claude-Qwen3.6-Plus 🐾
35 lines
890 B
JavaScript
35 lines
890 B
JavaScript
import { isSimpleGraph } from '../essence';
|
|
import Graph from '../Graph';
|
|
/**
|
|
* @description Get the graph's complement
|
|
* @description.zh-CN 获取图的补图
|
|
*/
|
|
|
|
export var getGraphComplement = function getGraphComplement(originGraph) {
|
|
if (!isSimpleGraph(originGraph)) {
|
|
return null;
|
|
}
|
|
|
|
var nodeCount = originGraph.nodeCount();
|
|
var complementGraph = new Graph({
|
|
compound: originGraph.isCompound(),
|
|
directed: originGraph.isDirected(),
|
|
multigraph: originGraph.isMultigraph()
|
|
});
|
|
var nodes = originGraph.nodes();
|
|
|
|
for (var i = 0; i < nodeCount; i++) {
|
|
var nodei = nodes[i];
|
|
complementGraph.setNode(nodei, originGraph.node(nodei));
|
|
|
|
for (var j = i + 1; j < nodeCount; j++) {
|
|
var nodej = nodes[j];
|
|
|
|
if (!originGraph.hasEdge(nodei, nodej)) {
|
|
complementGraph.setEdge(nodei, nodej);
|
|
}
|
|
}
|
|
}
|
|
|
|
return complementGraph;
|
|
}; |