有向图的邻接矩阵c语言代码
时间: 2023-12-04 11:41:01 浏览: 100
以下是有向图的邻接矩阵C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAXVEX 100 // 最大顶点数,可根据实际情况修改
typedef struct {
int vexs[MAXVEX]; // 存储顶点的数组
int matrix[MAXVEX][MAXVEX]; // 存储邻接矩阵的二维数组
int vexnum, edgenum; // 顶点数和边数
} MGraph;
// 创建有向图的邻接矩阵
void CreateMGraph(MGraph *G) {
int i, j, k, w;
printf("请输入顶点数和边数:\n");
scanf("%d%d", &G->vexnum, &G->edgenum);
printf("请输入顶点信息:\n");
for (i = 0; i < G->vexnum; i++) {
scanf("%d", &G->vexs[i]);
}
for (i = 0; i < G->vexnum; i++) {
for (j = 0; j < G->vexnum; j++) {
G->matrix[i][j] = 0; // 初始化邻接矩阵
}
}
printf("请输入边的信息:\n");
for (k = 0; k < G->edgenum; k++) {
printf("请输入边(vi, vj)的下标i、下标j和权值w:\n");
scanf("%d%d%d", &i, &j, &w);
G->matrix[i][j] = w; // 存储边的信息到邻接矩阵
}
}
// 打印邻接矩阵
void PrintMGraph(MGraph G) {
int i, j;
printf("邻接矩阵为:\n");
for (i = 0; i < G.vexnum; i++) {
for (j = 0; j < G.vexnum; j++) {
printf("%d ", G.matrix[i][j]);
}
printf("\n");
}
}
int main() {
MGraph G;
CreateMGraph(&G);
PrintMGraph(G);
return 0;
}
```
阅读全文