数据结构邻接矩阵c代码
时间: 2024-05-08 19:13:50 浏览: 18
邻接矩阵是一种用于表示图的数据结构,它可以用一个二维数组来表示图中每个顶点之间的连接关系。以下是一个使用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; // 存储边数
} AdjMatrix;
void createGraph(AdjMatrix* g) {
int i, j;
printf("请输入顶点数和边数:");
scanf("%d %d", &(g->vertex_num), &(g->edge_num));
printf("请输入顶点信息:");
for(i = 0; i < g->vertex_num; i++) {
scanf("%d", &(g->vertex[i]));
}
for(i = 0; i < g->vertex_num; i++) {
for(j = 0; j < g->vertex_num; j++) {
g->edge[i][j] = 0; // 初始化边的信息
}
}
printf("请输入每条边的起点和终点:");
for(i = 0; i < g->edge_num; i++) {
int u, v;
scanf("%d %d", &u, &v);
g->edge[u][v] = 1;
g->edge[v][u] = 1;
}
}
void printGraph(AdjMatrix g) {
int i, j;
printf("邻接矩阵为:\n");
for(i = 0; i < g.vertex_num; i++) {
for(j = 0; j < g.vertex_num; j++) {
printf("%d ", g.edge[i][j]);
}
printf("\n");
}
}
int main() {
AdjMatrix graph;
createGraph(&graph);
printGraph(graph);
return 0;
}
```
以上代码实现了邻接矩阵的创建和输出功能,其中 `createGraph` 函数用于创建邻接矩阵, `printGraph` 函数用于输出邻接矩阵。在创建邻接矩阵时,需要先输入顶点数和边数,然后输入每个顶点的信息和每条边的起点和终点。在输出邻接矩阵时,将二维数组中的每个元素依次输出即可。