c语言实现邻接矩阵创建无向图
时间: 2023-10-15 21:04:01 浏览: 73
邻接矩阵无向图
可以使用二维数组来表示邻接矩阵,其中数组的每个元素表示一条边的权值。以下是创建无向图的示例代码:
```c
#include <stdio.h>
#define MAX_VERTICES 100
int graph[MAX_VERTICES][MAX_VERTICES];
int main() {
int num_vertices, num_edges;
printf("Enter the number of vertices: ");
scanf("%d", &num_vertices);
printf("Enter the number of edges: ");
scanf("%d", &num_edges);
// 初始化邻接矩阵
for (int i = 0; i < num_vertices; i++) {
for (int j = 0; j < num_vertices; j++) {
graph[i][j] = 0;
}
}
// 读入每条边的起点和终点,设置邻接矩阵中相应的位置为1
for (int i = 0; i < num_edges; i++) {
int u, v;
printf("Enter edge %d (u, v): ", i+1);
scanf("%d %d", &u, &v);
graph[u][v] = 1;
graph[v][u] = 1; // 因为是无向图,所以需要设置对称位置为1
}
// 打印邻接矩阵
printf("Adjacency matrix:\n");
for (int i = 0; i < num_vertices; i++) {
for (int j = 0; j < num_vertices; j++) {
printf("%d ", graph[i][j]);
}
printf("\n");
}
return 0;
}
```
在上述代码中,我们首先读入了图的顶点数和边数,然后初始化邻接矩阵,接着读入每条边的起点和终点,并将相应的位置设置为1,最后打印邻接矩阵。
阅读全文