c++邻接表代码实现
时间: 2023-11-24 10:51:05 浏览: 78
邻接表代码
4星 · 用户满意度95%
以下是C++实现邻接表的代码示例:
```cpp
#include <iostream>
#include <vector>
using namespace std;
// 边结构体
struct Edge {
int to; // 目标顶点
int weight; // 权重
Edge(int t, int w) : to(t), weight(w) {}
};
// 邻接表结构体
struct Graph {
int V; // 顶点数
vector<vector<Edge>> adj; // 邻接表
Graph(int v) : V(v), adj(v) {}
// 添加边
void addEdge(int u, int v, int w) {
adj[u].push_back(Edge(v, w));
adj[v].push_back(Edge(u, w)); // 无向图需要添加反向边
}
};
int main() {
int V = 5; // 顶点数
Graph g(V);
// 添加边
g.addEdge(0, 1, 2);
g.addEdge(0, 4, 5);
g.addEdge(1, 2, 3);
g.addEdge(1, 3, 4);
g.addEdge(1, 4, 6);
g.addEdge(2, 3, 1);
g.addEdge(3, 4, 2);
// 输出邻接表
for (int i = 0; i < V; i++) {
cout << i << ": ";
for (auto e : g.adj[i]) {
cout << "(" << e.to << ", " << e.weight << ") ";
}
cout << endl;
}
return 0;
}
```
阅读全文