在C++中实现图的动态修改通常需要使用图的邻接表或邻接矩阵表示方法。以下是一种简单的实现方法:
以下是一个简单的示例代码:
#include <iostream> #include <vector> using namespace std; // 节点的定义 struct Node { int val; vector<int> neighbors; Node(int v) : val(v) {} }; // 图的定义 class Graph { public: vector<Node*> nodes; // 添加节点 void addNode(int val) { Node* newNode = new Node(val); nodes.push_back(newNode); } // 添加边 void addEdge(int src, int dest) { nodes[src]->neighbors.push_back(dest); nodes[dest]->neighbors.push_back(src); } // 打印图的连接关系 void printGraph() { for (int i = 0; i < nodes.size(); i++) { cout << "Node " << nodes[i]->val << " neighbors: "; for (int j = 0; j < nodes[i]->neighbors.size(); j++) { cout << nodes[i]->neighbors[j] << " "; } cout << endl; } } }; int main() { Graph graph; // 添加节点 graph.addNode(0); graph.addNode(1); graph.addNode(2); // 添加边 graph.addEdge(0, 1); graph.addEdge(1, 2); // 打印图的连接关系 graph.printGraph(); return 0; } 通过上面的代码示例,您可以在C++中实现图的动态修改,包括添加节点和添加边等操作。您可以根据需要扩展该代码,实现更多的图结构修改方法。