是否想知道即使已经创建了图形也可以从图中添加和删除节点吗?
下面的代码是我创建图形的方式:
int V = 6; // Number of vertices in graph
int E = 18; // Number of edges in graph
//graph being created
struct Graph* graph = createGraph(V, E);
//////////////////////////////////////////////
struct Graph* createGraph(int V, int E) {
struct Graph* graph = new Graph;
graph->V = V;
graph->E = E;
graph->edge = new Edge[E];
return graph;
}
答案 0 :(得分:1)
这总是可能的。如果您使用手动分配的数组,则会更加痛苦:
renderTarget.BeginDraw();
renderTarget.Clear(colorBlack); //required?
// Draw elements
renderTarget.EndDraw();
swapChain.Present(1, PresentFlags.None);
的值,然后将要删除的节点之后的每个节点复制到一个位置,例如使用graph->E
和graph->E
数组。 但是,如果您使用delete[]
则可以帮自己一个忙。然后,您可以使用std::copy(graph->edge+i, graph->edge+graph->E, graph+i-1);
动态添加新节点,并使用graph->edge.pushback()
删除节点。您将不再需要图-> E,因为您可以使用vector<Edge>
来获得它。