在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++中實現圖的動態修改,包括添加節點和添加邊等操作。您可以根據需要擴展該代碼,實現更多的圖結構修改方法。