用c语言实现如下功能:用邻接矩阵创建无向网,无向网的三个顶点分别为A、B、C,共用三条边,AB间边的权值为1,AC间边的权值为2,BC间边的权值为3,输出这个无向网
时间: 2023-09-19 16:11:37 浏览: 82
C++数据结构以邻接矩阵方式确定有向网.docx
以下是用邻接矩阵创建无向网的C语言代码,包括无向网的三个顶点A、B、C,共用三条边,AB间边的权值为1,AC间边的权值为2,BC间边的权值为3:
```c
#include <stdio.h>
#define MAX_VERTEX_NUM 3 // 定义顶点数的最大值
typedef struct {
int vertex[MAX_VERTEX_NUM]; // 存储顶点信息
int edge[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 存储边的权值
int num_of_vertex; // 存储顶点数
int num_of_edge; // 存储边数
} Graph;
// 初始化图
void initGraph(Graph *g) {
int i, j;
g->num_of_vertex = 3;
g->num_of_edge = 3;
for (i = 0; i < g->num_of_vertex; i++) {
for (j = 0; j < g->num_of_vertex; j++) {
g->edge[i][j] = 0;
}
}
g->vertex[0] = 'A';
g->vertex[1] = 'B';
g->vertex[2] = 'C';
g->edge[0][1] = 1;
g->edge[1][0] = 1;
g->edge[0][2] = 2;
g->edge[2][0] = 2;
g->edge[1][2] = 3;
g->edge[2][1] = 3;
}
// 输出无向网
void printGraph(Graph g) {
int i, j;
printf("无向网:\n");
for (i = 0; i < g.num_of_vertex; i++) {
for (j = 0; j < g.num_of_vertex; j++) {
printf("%d ", g.edge[i][j]);
}
printf("\n");
}
}
int main() {
Graph g;
initGraph(&g);
printGraph(g);
return 0;
}
```
输出结果为:
```
无向网:
0 1 2
1 0 3
2 3 0
```
阅读全文