具有n个顶点的无向图,邻接矩阵上三角部分按列优先存储,统计各顶点的度c语言代码
时间: 2024-12-23 08:27:37 浏览: 11
无向图的邻接矩阵存储及输出
在 C 语言中,我们可以使用邻接矩阵表示无向图,并利用列优先存储(Column Major)的方式来计算每个顶点的度。下面是一个简单的示例,假设我们有一个整型二维数组 `adjMatrix` 表示邻接矩阵:
```c
#include <stdio.h>
// 定义图的大小
#define N 5 // 替换为你实际的顶点数
// 计算给定顶点的度(连接边的数量)
int vertex_degree(int adjMatrix[N][N], int vertex) {
int degree = 0; // 初始化度为0
for (int i = 0; i < N; ++i) { // 遍历矩阵的下三角部分
if (adjMatrix[vertex][i] != 0) { // 如果矩阵对应位置非零(代表有边相连)
degree++; // 度加一
}
}
return degree;
}
// 主函数,读取邻接矩阵并打印所有顶点的度
int main() {
int adjMatrix[N][N]; // 初始化邻接矩阵
// 填充邻接矩阵... (这需要具体的数据)
for (int i = 0; i < N; ++i) {
int degree = vertex_degree(adjMatrix, i);
printf("顶点 %d 的度是:%d\n", i, degree);
}
return 0;
}
```
在这个例子中,你需要根据实际的无向图结构填充 `adjMatrix` 数组。注意,这个代码假设无向图的邻接矩阵是对称的,即 `adjMatrix[i][j] != 0` 当且仅当 `adjMatrix[j][i] != 0`。
阅读全文