定义无向网的邻接矩阵存储方式,并打印。邻接矩阵有边显示权值,无边为无穷大MaxInt c语言
时间: 2024-12-10 20:13:54 浏览: 59
在C语言中,定义无向图的邻接矩阵存储方式可以通过二维数组来实现。假设我们有一个包含`n`个顶点的无向图,邻接矩阵可以表示为一个`n x n`的二维数组,其中`matrix[i][j]`表示顶点`i`和顶点`j`之间的边的权值。如果两个顶点之间没有边,则权值为`MaxInt`(表示无穷大)。
以下是一个示例代码,展示了如何定义无向图的邻接矩阵并打印:
```c
#include <stdio.h>
#include <limits.h>
#define MaxInt INT_MAX
#define V 5 // 顶点数
// 定义邻接矩阵
int adjMatrix[V][V] = {
{0, 2, MaxInt, 6, MaxInt},
{2, 0, 3, 8, 5},
{MaxInt, 3, 0, MaxInt, 7},
{6, 8, MaxInt, 0, 9},
{MaxInt, 5, 7, 9, 0}
};
// 打印邻接矩阵
void printAdjMatrix(int matrix[V][V]) {
printf("邻接矩阵:\n");
for (int i = 0; i < V; i++) {
for (int j = 0; j < V; j++) {
if (matrix[i][j] == MaxInt)
printf("INF\t");
else
printf("%d\t", matrix[i][j]);
}
printf("\n");
}
}
int main() {
printAdjMatrix(adjMatrix);
return 0;
}
```
在这个示例中,我们定义了一个包含5个顶点的无向图的邻接矩阵,并将其初始化。`MaxInt`表示两个顶点之间没有边。然后,我们定义了一个`printAdjMatrix`函数来打印邻接矩阵。
阅读全文