C语言邻接矩阵用文件写
时间: 2024-09-09 21:01:56 浏览: 46
在C语言中,使用邻接矩阵表示图结构,并将其写入文件,通常涉及以下几个步骤:
1. 定义图的数据结构:通常我们会使用二维数组来表示邻接矩阵,其中每个元素表示两个顶点之间的边的权重。
```c
#define MAX_VERTICES 100
int graph[MAX_VERTICES][MAX_VERTICES];
```
2. 初始化图的邻接矩阵:在写入文件之前,需要将图的邻接矩阵初始化,可以是无向图或有向图。
```c
void initGraph(int vertices) {
for (int i = 0; i < vertices; ++i) {
for (int j = 0; j < vertices; ++j) {
if (i == j) {
graph[i][j] = 0; // 自环为0
} else {
graph[i][j] = INT_MAX; // 无边则为一个大的数表示无穷大
}
}
}
}
```
3. 填充邻接矩阵:根据图的具体情况来设置邻接矩阵中的权重。
```c
void addEdge(int start, int end, int weight) {
graph[start][end] = weight;
// 如果是无向图,还需要添加下面一行
// graph[end][start] = weight;
}
```
4. 将邻接矩阵写入文件:通过文件操作将邻接矩阵的内容写入到一个文件中。
```c
void writeGraphToFile(const char* filename, int vertices) {
FILE* file = fopen(filename, "w");
if (file == NULL) {
perror("Error opening file");
return;
}
fprintf(file, "%d\n", vertices); // 先写入顶点的数量
for (int i = 0; i < vertices; ++i) {
for (int j = 0; j < vertices; ++j) {
fprintf(file, "%d ", graph[i][j]);
}
fprintf(file, "\n");
}
fclose(file);
}
```
在上述代码中,我们首先定义了图的邻接矩阵大小,并初始化图的邻接矩阵。然后,我们填充邻接矩阵来表示图的边。最后,我们通过文件操作将邻接矩阵的数据写入到一个文件中。
阅读全文