已知有向图G=(V,E),其中:V={1,2,3,4,5,6},E={<2,1><2,4><3,2><3,6><4,3><4,6><5,1><6,1><6,2><6,5>设计一个算法,采用邻接矩阵创建有向图用c语言
时间: 2024-05-17 17:12:18 浏览: 77
好的,以下是采用邻接矩阵创建有向图的 C 语言代码实现:
```c
#include <stdio.h>
#define V 6 // 顶点数
#define E 10 // 边数
int main() {
int adjacency_matrix[V][V] = {0}; // 初始化邻接矩阵
// 初始化边集合
int edges[E][2] = {
{2, 1}, {2, 4}, {3, 2}, {3, 6}, {4, 3},
{4, 6}, {5, 1}, {6, 1}, {6, 2}, {6, 5}
};
// 遍历边集合,将邻接矩阵中的对应元素置为 1
for (int i = 0; i < E; i++) {
int x = edges[i][0] - 1;
int y = edges[i][1] - 1;
adjacency_matrix[x][y] = 1;
}
// 打印邻接矩阵
printf("邻接矩阵:\n");
for (int i = 0; i < V; i++) {
for (int j = 0; j < V; j++) {
printf("%d ", adjacency_matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果为:
```
邻接矩阵:
0 0 0 0 0 0
1 0 0 1 0 0
0 1 0 0 0 1
0 0 1 0 0 1
1 0 0 0 0 0
1 1 0 0 1 0
```
注:为了方便,上述代码使用了 C99 标准的特性,如您的编译器不支持 C99 标准,请将定义数组的方式改为标准的 C89 写法。
阅读全文