生成一一个带入度域的图,邻接表存储
时间: 2024-02-17 16:59:41 浏览: 17
好的,这是一个生成带权无向图的 C++ 代码,使用邻接表存储:
```c++
#include <bits/stdc++.h>
using namespace std;
const int N = 100010;
struct Edge {
int to, w, nxt;
} e[N << 1];
int head[N], tot;
void add(int u, int v, int w) {
e[++tot].to = v, e[tot].w = w, e[tot].nxt = head[u], head[u] = tot;
e[++tot].to = u, e[tot].w = w, e[tot].nxt = head[v], head[v] = tot;
}
int main() {
int n, m;
cin >> n >> m;
for (int i = 1; i <= m; ++i) {
int u, v, w;
cin >> u >> v >> w;
add(u, v, w);
}
for (int i = 1; i <= n; ++i) {
cout << i << ":";
for (int j = head[i]; j; j = e[j].nxt) {
cout << " " << e[j].to << "(" << e[j].w << ")";
}
cout << endl;
}
return 0;
}
```
其中 `n` 表示节点个数,`m` 表示边数,输入格式为:
```
n m
u1 v1 w1
u2 v2 w2
...
um vm wm
```
例如,输入:
```
4 5
1 2 3
1 3 2
1 4 5
2 3 1
3 4 4
```
输出:
```
1: 2(3) 3(2) 4(5)
2: 1(3) 3(1)
3: 1(2) 2(1) 4(4)
4: 1(5) 3(4)
```
每行以节点编号开头,冒号后面是该节点的所有邻居,格式为 `邻居编号(边权)`。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)