实现图的邻接表的存储 编写程序,输入顶点的个数、边的个数、每个顶点的值、每 一条边及其权值,建立带权无向图 G 的邻接表,并输出之。
时间: 2024-02-15 09:01:53 浏览: 28
好的,我可以为您提供这个问题的解答。以下是一个示例的 C++ 代码:
```c++
#include <iostream>
#include <vector>
#include <utility> // for std::pair
using namespace std;
// 定义邻接表中存储的每个边的结构体
struct Edge {
int to; // 边的终点
int weight; // 边的权值
};
int main() {
int n, m; // n 为顶点个数,m 为边的个数
cin >> n >> m;
// 定义邻接表
vector<vector<Edge>> adj_list(n);
// 输入每个顶点的值(这里只是简单地读入一个整数)
vector<int> node_values(n);
for (int i = 0; i < n; i++) {
cin >> node_values[i];
}
// 输入每一条边及其权值,并添加到邻接表中
for (int i = 0; i < m; i++) {
int u, v, w;
cin >> u >> v >> w;
// 由于是无向图,因此需要在 u 的邻接表中添加一条指向 v 的边
adj_list[u].push_back({v, w});
// 同时在 v 的邻接表中添加一条指向 u 的边
adj_list[v].push_back({u, w});
}
// 输出邻接表
for (int i = 0; i < n; i++) {
cout << "Node " << i << " (value = " << node_values[i] << "): ";
for (Edge& e : adj_list[i]) {
cout << "(" << e.to << ", " << e.weight << ") ";
}
cout << endl;
}
return 0;
}
```
示例输入:
```
5 7
10 20 30 40 50
0 1 2
0 2 1
0 3 3
1 2 4
1 3 2
2 3 5
3 4 1
```
示例输出:
```
Node 0 (value = 10): (1, 2) (2, 1) (3, 3)
Node 1 (value = 20): (0, 2) (2, 4) (3, 2)
Node 2 (value = 30): (0, 1) (1, 4) (3, 5)
Node 3 (value = 40): (0, 3) (1, 2) (2, 5) (4, 1)
Node 4 (value = 50): (3, 1)
```
希望对您有所帮助!
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)