c++设有向图G采用邻接矩阵存储,计算出度为0的顶点个数
时间: 2024-03-17 11:42:43 浏览: 103
建立有向图G的邻接矩阵存储
5星 · 资源好评率100%
以下是计算有向图G中出度为0的顶点个数的C++代码实现,假设邻接矩阵存储的有向图为G,其中顶点个数为n,邻接矩阵为matrix[][]:
```c++
#include <iostream>
using namespace std;
const int N = 100010;
int matrix[N][N]; // 邻接矩阵存储
int count_outdegree_zero(int n) {
int cnt = 0;
for (int i = 0; i < n; i++) {
bool flag = true;
for (int j = 0; j < n; j++) {
if (matrix[i][j] == 1) {
flag = false;
break;
}
}
if (flag) cnt++;
}
return cnt;
}
int main() {
int n, m;
cin >> n >> m;
// 读入有向图
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
matrix[u][v] = 1;
}
int cnt = count_outdegree_zero(n); // 计算出度为0的顶点个数
// 输出结果
cout << "The number of vertices with outdegree 0: " << cnt << endl;
return 0;
}
```
算法思路:遍历每个顶点的邻接矩阵,对于每个顶点 $i$,如果其所有出边的终点都不在邻接矩阵的第 $i$ 行上,则 $i$ 的出度为0。统计出度为0的顶点个数即可。
阅读全文