c语言带权有向图邻接矩阵
时间: 2023-12-30 21:24:35 浏览: 118
以下是C语言中带权有向图邻接矩阵的示例代码:
```c
#include <stdio.h>
#define MAX_VERTEX_NUM 100 // 最大顶点数
typedef struct {
int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 邻接矩阵
char vexs[MAX_VERTEX_NUM]; // 顶点数组
int vexnum; // 顶点数
int arcnum; // 弧数
MGraph;
// 输出邻接矩阵
void OutMGraph(MGraph G) {
int i, j, count = 0;
printf("\t");
for (i = 0; i < G.vexnum; i++)
printf("\t%c", G.vexs[i]);
printf("\n");
for (i = 0; i < G.vexnum; i++) {
printf("\t%c", G.vexs[i]);
for (j = 0; j < G.vexnum; j++) {
printf("\t%d", G.arcs[i][j]);
count++;
if (count % G.vexnum == 0)
printf("\n");
}
}
}
int main() {
MGraph G;
int i, j;
// 初始化顶点数和弧数
G.vexnum = 4;
G.arcnum = 6;
// 初始化顶点数组
G.vexs[0] = 'A';
G.vexs[1] = 'B';
G.vexs[2] = 'C';
G.vexs[3] = 'D';
// 初始化邻接矩阵
for (i = 0; i < G.vexnum; i++) {
for (j = 0; j < G.vexnum; j++) {
G.arcs[i][j] = 0;
}
}
// 添加边的权值
G.arcs[0][1] = 1;
G.arcs[0][2] = 2;
G.arcs[1][2] = 3;
G.arcs[1][3] = 4;
G.arcs[2][3] = 5;
G.arcs[3][0] = 6;
// 输出邻接矩阵
OutMGraph(G);
return 0;
}
```
阅读全文