用c++实现一个无向连通图
时间: 2024-04-30 09:23:26 浏览: 94
C++无向图代码
5星 · 资源好评率100%
以下是使用邻接矩阵表示的无向连通图的C语言实现:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_VERTICES 100 // 最大顶点数
typedef struct {
int edges[MAX_VERTICES][MAX_VERTICES]; // 邻接矩阵
int n; // 顶点数
} Graph;
// 初始化图
void init_graph(Graph *g, int n) {
int i, j;
g->n = n;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
g->edges[i][j] = 0;
}
}
}
// 添加边
void add_edge(Graph *g, int u, int v) {
g->edges[u][v] = 1;
g->edges[v][u] = 1;
}
// 输出图
void print_graph(Graph *g) {
int i, j;
for (i = 0; i < g->n; i++) {
for (j = 0; j < g->n; j++) {
printf("%d ", g->edges[i][j]);
}
printf("\n");
}
}
int main() {
Graph g;
init_graph(&g, 5);
add_edge(&g, 0, 1);
add_edge(&g, 0, 2);
add_edge(&g, 1, 2);
add_edge(&g, 2, 3);
add_edge(&g, 3, 4);
print_graph(&g);
return 0;
}
```
以上代码创建了一个包含5个顶点的无向图,然后添加了5条边,最后输出了邻接矩阵表示的图。你可以根据需要修改顶点数和边的数量。
阅读全文