c++给定有向图的顶点数、弧数以及弧的信息,输出各个顶点的度。X组测试数据,对于每组测试数据, 第一行输入顶点数N(N<=100),弧数M,数据之间空格分隔; 第二行输入M条弧的信息(v1 v2表示弧尾弧头顶点),数据之间由空格分隔。 每组测试数据第一行输出各个顶点的出度,数据之间由空格分隔。 每组测试数据第二行输出各个顶点的入度,数据之间由空格分隔。
时间: 2024-03-18 16:40:03 浏览: 71
求有向图所有顶点的出度与入度
5星 · 资源好评率100%
好的,我会解答你的问题。
以下是c++的代码实现:
```c++
#include <iostream>
#include <cstring>
using namespace std;
const int MAXN = 100;
int out_degree[MAXN + 5]; // 存储各个顶点的出度
int in_degree[MAXN + 5]; // 存储各个顶点的入度
int main() {
int n, m;
while (cin >> n >> m) {
// 初始化
memset(out_degree, 0, sizeof(out_degree));
memset(in_degree, 0, sizeof(in_degree));
// 读入弧的信息,计算各个顶点的出度和入度
for (int i = 1; i <= m; i++) {
int u, v;
cin >> u >> v;
out_degree[u]++; // u的出度加1
in_degree[v]++; // v的入度加1
}
// 输出各个顶点的出度
for (int i = 1; i <= n; i++) {
cout << out_degree[i] << " ";
}
cout << endl;
// 输出各个顶点的入度
for (int i = 1; i <= n; i++) {
cout << in_degree[i] << " ";
}
cout << endl;
}
return 0;
}
```
代码思路:
1. 首先读入顶点数 n 和弧数 m。
2. 然后根据弧的信息计算各个顶点的出度和入度,分别存储在数组 out_degree 和 in_degree 中。
3. 最后分别输出各个顶点的出度和入度。
注意事项:
1. 在读入弧的信息时,注意每个顶点编号从1开始。
2. 每组测试数据之间需要输出一个空行。
阅读全文