参考书:图论算法理论、实现及应用(北京大学出版社)
输入数据:(test.txt)
程序:
/* 邻接矩阵存储有向图 */ #include <cstring>
#include <cstdio> #define MAXN 100
int matrix[MAXN][MAXN]; int main()
{
int n, m;
freopen("test.txt", "r", stdin); while(scanf("%d %d", &n, &m) && m && n)
{
int i, j, u, v; memset(matrix, , sizeof(matrix)); for(i = ; i < m; ++i)
{
scanf("%d %d", &u, &v);
--u, --v; // 输入数据中顶点序号从1开始记起
matrix[u][v] = ;
} // 输出出度
int inDegree;
for(i = ; i < n; ++i)
{
inDegree = ;
for(j = ; j < n; ++j)
inDegree += matrix[i][j];
printf("%d ", inDegree);
} printf("\n"); int outDegree;
for(i = ; i < n; ++i)
{
outDegree = ;
for(j = ; j < n; ++j)
outDegree += matrix[j][i];
printf("%d ", outDegree);
}
printf("\n");
} return ;
}