用C语言使用邻接矩阵定义赋权有向图的结构体
时间: 2023-09-04 15:13:07 浏览: 171
邻接矩阵表示的带权有向图网演示程序.doc
好的,以下是用C语言使用邻接矩阵定义赋权有向图的结构体的示例代码:
```c
#define MAX_VERTEX_NUM 100 // 图的最大顶点数
// 定义图的结构体
typedef struct {
int vertex[MAX_VERTEX_NUM]; // 存储顶点信息
int edge[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; // 存储边的权值信息
int vertex_num; // 顶点数
int edge_num; // 边数
} Graph;
// 初始化图
void InitGraph(Graph* g) {
for (int i = 0; i < MAX_VERTEX_NUM; i++) {
g->vertex[i] = 0;
for (int j = 0; j < MAX_VERTEX_NUM; j++) {
g->edge[i][j] = 0;
}
}
g->vertex_num = 0;
g->edge_num = 0;
}
// 添加顶点
void AddVertex(Graph* g, int v) {
g->vertex[g->vertex_num++] = v;
}
// 添加边
void AddEdge(Graph* g, int start, int end, int weight) {
g->edge[start][end] = weight;
g->edge_num++;
}
```
这个结构体使用一个二维数组来存储边的权值信息,其中第一维表示起始顶点,第二维表示结束顶点。如果两个顶点之间没有边,则权值为0。你可以根据具体的需求来修改这个结构体。
阅读全文