图的存储结构邻接矩阵代码c
时间: 2024-12-14 18:08:28 浏览: 19
图的存储结构邻接矩阵是一种常用的表示图的方法,特别适用于稠密图。邻接矩阵是一个二维数组,其中每个元素表示两个顶点之间是否存在边。
以下是一个用C语言实现的邻接矩阵代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTICES 100
// 图的邻接矩阵表示
typedef struct {
int n; // 顶点数
int adjMatrix[MAX_VERTICES][MAX_VERTICES];
} Graph;
// 初始化图
void initGraph(Graph *g, int n) {
g->n = n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
g->adjMatrix[i][j] = 0;
}
}
}
// 添加边
void addEdge(Graph *g, int u, int v) {
g->adjMatrix[u][v] = 1;
g->adjMatrix[v][u] = 1; // 无向图
}
// 打印邻接矩阵
void printGraph(Graph *g) {
for (int i = 0; i < g->n; i++) {
for (int j = 0; j < g->n; j++) {
printf("%d ", g->adjMatrix[i][j]);
}
printf("\n");
}
}
int main() {
Graph g;
int n = 5; // 顶点数
initGraph(&g, n);
addEdge(&g, 0, 1);
addEdge(&g, 0, 4);
addEdge(&g, 1, 2);
addEdge(&g, 1, 3);
addEdge(&g, 1, 4);
addEdge(&g, 2, 3);
addEdge(&g, 3, 4);
printGraph(&g);
return 0;
}
```
在这个示例中,我们定义了一个`Graph`结构体来表示图,并实现了初始化图、添加边和打印邻接矩阵的函数。`main`函数中,我们初始化了一个包含5个顶点的图,并添加了一些边,最后打印出邻接矩阵。
阅读全文