在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++中实现图的动态修改,包括添加节点和添加边等操作。您可以根据需要扩展该代码,实现更多的图结构修改方法。