【C++数据结构】有向图邻接矩阵 入度和出度
【问题描述】
已知一个有向图,如下图所示,试编写一个算法,以邻接矩阵作为存储结构,计算各顶点的入度和出度。
【输入形式】顶点数,边数,权值矩阵 【输出形式】顶点及入度和出度 【样例输入】6 9
0 22 16 10000 10000 10000
2 0 10000 10000 9 10000
10000 4 0 10000 10000 8
10000 10000 10000 0 10000 10000
10000 10000 10000 15 0 10000
10000 10000 10000 7 12 0
【样例输出】
0 1 2
1 2 2
2 1 2
3 2 0
4 2 1
5 1 2
#include<iostream> #include<string> using namespace std; # define Maxsize 20 struct Graph { int n, e; int vertex[Maxsize]; int edge[Maxsize][Maxsize]; }; void CreateMatrix(Graph& G, int vertex) { G.n = vertex; for (int i = 0; i < G.n; i++) { for (int j = 0; j < G.n; j++) { int num; cin >> num; G.edge[i][j] = num; } } } int rudu(int dian, Graph &G) { int count = 0; for (int i = 0; i < G.n; i++) { if (0 < G.edge[i][dian]&& G.edge[i][dian]<10000) count++; } return count; } int chudu(int dian, Graph G) { int count = 0; for (int i = 0; i < G.n; i++) { if (0 < G.edge[dian][i]&& G.edge[dian][i] < 10000) count++; } return count; } int main() { int vertex; int side; cin >> vertex; cin >> side; Graph G; CreateMatrix(G, vertex); for (int i = 0; i < vertex; i++) { cout << i << " " << rudu(i, G) << " " << chudu(i, G) << endl; } return 0; }