用c语言写图的生成代码
时间: 2024-05-14 09:19:40 浏览: 7
对于生成图的代码,在C语言中有不同的库和算法可以实现。其中,比较常用的是使用邻接矩阵或邻接表来表示图,然后通过遍历算法来生成不同类型的图。以下是一个简单的示例,用邻接矩阵表示无向图并生成随机边。
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX_VERTEX 100 // 最多支持的顶点数
int G[MAX_VERTEX][MAX_VERTEX]; // 邻接矩阵,表示图
int n; // 顶点数
int e; // 边数
// 生成无向图
void generate_graph()
{
srand((unsigned) time(NULL)); // 初始化随机数种子
for (int i = 0; i < n; i++) {
for (int j = i + 1; j < n; j++) {
if (rand() % 2) { // 50%的概率连边
G[i][j] = G[j][i] = 1;
e++;
}
}
}
}
// 输出图结构
void print_graph()
{
printf("Graph:\n");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", G[i][j]);
}
printf("\n");
}
printf("Vertices: %d, Edges: %d\n", n, e);
}
// 主函数
int main()
{
n = 6;
generate_graph();
print_graph();
return 0;
}
```
以上是一个简单的示例,可以生成一个随机的无向图。实际使用中,还需要结合具体的需求选择不同的数据结构和算法。