用邻接矩阵创建无向图c语言
时间: 2024-05-17 11:17:57 浏览: 124
数据结构-c语言-带main函数-图7.2-图的存储结构-图的邻接矩阵的创建-无向图。
好的,下面是用邻接矩阵创建无向图的 C 语言代码:
```c
#include <stdio.h>
#define MAX_SIZE 50 // 定义邻接矩阵的最大大小
int adjMatrix[MAX_SIZE][MAX_SIZE]; // 声明邻接矩阵
int numVertices; // 图的顶点数
// 初始化邻接矩阵
void initAdjMatrix() {
int i, j;
for(i = 0; i < numVertices; i++) {
for(j = 0; j < numVertices; j++) {
adjMatrix[i][j] = 0; // 初始化为0,表示无边相连
}
}
}
// 添加边
void addEdge(int i, int j) {
adjMatrix[i][j] = 1;
adjMatrix[j][i] = 1;
}
// 打印邻接矩阵
void printAdjMatrix() {
int i, j;
for(i = 0; i < numVertices; i++) {
for(j = 0; j < numVertices; j++) {
printf("%d ", adjMatrix[i][j]);
}
printf("\n");
}
}
int main() {
int i, j, numEdges;
printf("请输入图的顶点数:");
scanf("%d", &numVertices);
initAdjMatrix(); // 初始化邻接矩阵
printf("请输入图的边数:");
scanf("%d", &numEdges);
for(int k = 1; k <= numEdges; k++) {
printf("请输入第 %d 条边的两个端点:", k);
scanf("%d %d", &i, &j);
addEdge(i, j); // 添加一条边
}
printAdjMatrix(); // 打印邻接矩阵
return 0;
}
```
这段代码可以根据用户输入的顶点数和边数,创建一个邻接矩阵表示的无向图,并打印出邻接矩阵。其中,`initAdjMatrix()` 函数用于初始化邻接矩阵,`addEdge()` 函数用于添加一条边,`printAdjMatrix()` 函数用于打印邻接矩阵。
阅读全文