0
cpettitt/graphlib으로 정의 된 그래프가 있습니다.graphlib에서 노드 ID를 변경하는 방법은 무엇입니까?
노드의 ID를 변경하고 가장자리를 업데이트하는 쉬운 방법이 있습니까?
cpettitt/graphlib으로 정의 된 그래프가 있습니다.graphlib에서 노드 ID를 변경하는 방법은 무엇입니까?
노드의 ID를 변경하고 가장자리를 업데이트하는 쉬운 방법이 있습니까?
이것은 내 해결책이며, 새로운 ID와 그 가장자리를 가진 노드 사본을 만듭니다. 그런 다음 이전 노드를 제거하십시오.
changeId(current, newId) {
let g = this.getGraph();
// Change on graph
let node = g.node(current);
let inEdges = g.inEdges(current);
let outEdges = g.outEdges(current);
// Create new node
node.id = newId;
g.setNode(newId, node);
// Create new edges
for (let i = 0; i < inEdges.length; i++) {
let edge = inEdges[i];
let conn = g.edge(edge.v, current);
conn.target = newId;
g.setEdge(edge.v, newId, conn);
}
for (let i = 0; i < outEdges.length; i++) {
let edge = outEdges[i];
let conn = g.edge(current, edge.w);
conn.source = newId;
g.setEdge(newId, edge.w, conn);
}
// Remove old node
g.removeNode(current);
}