用C语言编写测试图操作函数的程序
时间: 2024-03-27 21:36:16 浏览: 19
可以使用以下代码来编写测试图操作函数的程序:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100
// 定义图的结构体
typedef struct {
int vertex[MAX_SIZE]; // 存储顶点的数组
int edges[MAX_SIZE][MAX_SIZE]; // 存储边的数组
int num_vertices; // 顶点数
int num_edges; // 边数
} Graph;
// 初始化图
void init_graph(Graph *g) {
g->num_vertices = 0;
g->num_edges = 0;
int i, j;
for (i = 0; i < MAX_SIZE; i++) {
g->vertex[i] = 0;
for (j = 0; j < MAX_SIZE; j++) {
g->edges[i][j] = 0;
}
}
}
// 添加顶点
void add_vertex(Graph *g, int v) {
if (g->num_vertices >= MAX_SIZE) {
printf("Error: too many vertices\n");
return;
}
g->vertex[g->num_vertices] = v;
g->num_vertices++;
}
// 添加边
void add_edge(Graph *g, int v1, int v2) {
if (g->num_edges >= MAX_SIZE) {
printf("Error: too many edges\n");
return;
}
g->edges[v1][v2] = 1;
g->edges[v2][v1] = 1;
g->num_edges++;
}
// 打印图的顶点和边
void print_graph(Graph *g) {
int i, j;
printf("Vertices: ");
for (i = 0; i < g->num_vertices; i++) {
printf("%d ", g->vertex[i]);
}
printf("\nEdges:\n");
for (i = 0; i < g->num_vertices; i++) {
for (j = 0; j < g->num_vertices; j++) {
printf("%d ", g->edges[i][j]);
}
printf("\n");
}
}
int main() {
Graph g;
init_graph(&g);
add_vertex(&g, 1);
add_vertex(&g, 2);
add_vertex(&g, 3);
add_edge(&g, 1, 2);
add_edge(&g, 2, 3);
print_graph(&g);
return 0;
}
```
这个程序使用了一个结构体来表示图,包含一个存储顶点的数组和一个存储边的数组,以及顶点数和边数的变量。程序实现了初始化图、添加顶点、添加边、打印图等操作。你可以根据自己的需求修改这个程序来测试你的图操作函数。