利用邻接表创建无向网
时间: 2023-12-19 20:31:00 浏览: 109
邻接矩阵存储的无向网的基本操作(C语言实现)
邻接表是一种表示图的数据结构,它可以用来表示有向图或无向图。在无向网中,每个边都有一个权值,表示两个顶点之间的距离或者代价。下面是利用邻接表创建无向网的C++代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
// 定义边的结构体
struct Edge {
int to; // 边的终点
int weight; // 边的权值
Edge(int t, int w) : to(t), weight(w) {}
};
// 定义邻接表
vector<Edge> adj[100];
int main() {
int n, m; // n表示顶点数,m表示边数
cin >> n >> m;
for (int i = 0; i < m; i++) {
int u, v, w;
cin >> u >> v >> w;
adj[u].push_back(Edge(v, w)); // 添加一条从u到v的边
adj[v].push_back(Edge(u, w)); // 添加一条从v到u的边
}
return 0;
}
```
在这个代码中,我们使用了一个vector数组adj来表示邻接表,其中adj[i]表示顶点i的邻接表,存储了从i出发的所有边。每个边用一个结构体Edge来表示,其中to表示边的终点,weight表示边的权值。在输入边的时候,我们需要同时添加从u到v和从v到u的两条边,因为这是一个无向图。
阅读全文