C++代码编写 要求根据输入的整数对,输出一个图形的邻接矩阵。并求出各结点的出度和入度。
时间: 2024-02-21 18:02:18 浏览: 73
邻接矩阵 c++编程
好的,以下是C++代码实现,与我之前给出的Python代码等价:
```cpp
#include <iostream>
#include <vector>
#include <cstring>
using namespace std;
const int MAXN = 100;
int main() {
int n = 0; // 结点数
vector<pair<int, int>> pairs; // 整数对列表
// 读入输入的整数对
while (true) {
int x, y;
if (scanf("%d%d", &x, &y) != 2) break;
pairs.push_back(make_pair(x, y));
n = max(n, x);
n = max(n, y);
}
// 创建邻接矩阵
int A[MAXN][MAXN];
memset(A, 0, sizeof(A));
for (const auto& p : pairs) {
A[p.first-1][p.second-1] = 1;
}
// 计算出度和入度
for (int i = 0; i < n; i++) {
int out_degree = 0, in_degree = 0;
for (int j = 0; j < n; j++) {
out_degree += A[i][j];
in_degree += A[j][i];
}
printf("结点%d的出度为%d,入度为%d\n", i+1, out_degree, in_degree);
}
return 0;
}
```
以上代码中,我们首先读入输入的整数对,并找出图中的结点数n。然后,我们创建一个n*n的矩阵A,并将输入的整数对中的边加入邻接矩阵中。最后,我们扫描矩阵A,计算每个结点的出度和入度,并输出结果。
希望这个答案能够帮助你解决问题。
阅读全文