//
// Created by ZJ on 2023/11/21.
//
#include <stdio.h>
#define MAX 100
// 定义图的结构体
typedef struct {
int n; // 图中顶点的个数
int am[MAX][MAX]; // 邻接矩阵
} Graph;
// 初始化图
void init_graph(Graph *g, int n) {
g->n = n;
int i, j;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
g->am[i][j] = 0;
}
}
// 添加边
void add_edge(Graph *g, int x, int y) {
g->am[x][y] = 1;
g->am[y][x] = 1;
}
// 打印图
void print_graph(Graph *g) {
int i, j;
printf("Adjacency Matrix:\n");
for (i = 0; i < g->n; i++) {
for (j = 0; j < g->n; j++)
printf("%d ", g->am[i][j]);
printf("\n");
}
}
int main() {
Graph graph;
init_graph(&graph, 5); // 初始化一个包含5个顶点的图
add_edge(&graph, 0, 1); // 添加边(0, 1)
add_edge(&graph, 0, 4); // 添加边(0, 4)
add_edge(&graph, 1, 2); // 添加边(1, 2)
add_edge(&graph, 1, 3); // 添加边(1, 3)
add_edge(&graph, 1, 4); // 添加边(1, 4)
add_edge(&graph, 2, 3); // 添加边(2, 3)
add_edge(&graph, 3, 4); // 添加边(3, 4)
print_graph(&graph); // 打印图的邻接矩阵
return 0;
}
C语言简单无向图实现
520 views