c语言创建有向图(完整代码)
时间: 2024-08-31 18:00:31 浏览: 52
LCD图片显示 C语言 程序代码
在C语言中,由于其静态类型的特性,直接使用数组或结构体来模拟邻接矩阵可以创建简单的有向图。这里是一个基本的邻接矩阵表示法的例子:
```c
#include <stdio.h>
#define V 5 // 图中顶点的数量
typedef struct {
int destination;
int weight; // 如果有权重,可以添加这个成员
} Edge;
// 用于存储邻接矩阵的数据结构
typedef struct {
Edge adj[V][V]; // 每个节点最多有V个邻居
int num_edges; // 当前图中有多少条边
} Graph;
void addEdge(Graph *graph, int src, int dest) {
graph->adj[src][dest].destination = dest;
graph->adj[src][dest].weight = 0; // 如果无权图,则设为0
graph->num_edges++;
}
int main() {
Graph g;
for (int i = 0; i < V; i++) { // 初始化所有边为无边
for (int j = 0; j < V; j++) {
g.adj[i][j] = {0, 0};
}
}
// 添加边到图中
addEdge(&g, 0, 1);
addEdge(&g, 1, 2);
addEdge(&g, 2, 3);
addEdge(&g, 3, 4); // 这里只是一个示例,你可以根据需要添加更多边
return 0;
}
```
注意这只是一个基础版本,实际应用中可能还需要提供遍历、删除边等功能。此外,如果你需要动态地增加或减少节点,可能会选择链表或者其他数据结构。
阅读全文