c++建立有向图的方法
时间: 2024-01-03 11:05:06 浏览: 48
建立有向图的方法有很多种,其中一种常见的方法是使用邻接表或邻接矩阵。以下是使用邻接表实现有向图的C++代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
class Graph {
private:
int V; // 节点数
vector<int> *adj; // 邻接表
public:
Graph(int V) {
this->V = V;
adj = new vector<int>[V];
}
// 添加边
void addEdge(int u, int v) {
adj[u].push_back(v);
}
// 打印图
void printGraph() {
for (int i = 0; i < V; i++) {
cout << i << ": ";
for (auto j : adj[i])
cout << j << " ";
cout << endl;
}
}
};
int main() {
Graph g(5);
g.addEdge(0, 1);
g.addEdge(0, 4);
g.addEdge(1, 2);
g.addEdge(1, 3);
g.addEdge(1, 4);
g.addEdge(2, 3);
g.addEdge(3, 4);
g.printGraph();
return 0;
}
```
在这个实现中,我们使用了一个`vector<int>`类型的数组来存储每个节点的邻居节点。`addEdge`函数用来添加边,`printGraph`函数用来打印整个图的邻接表。