打印可以实现有向图和无向图的邻接矩阵,规定用c语言
时间: 2024-05-04 10:16:11 浏览: 13
可以实现有向图和无向图的邻接矩阵的代码如下:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_NODE 100
int main()
{
int n, m, i, j, k;
int graph[MAX_NODE][MAX_NODE];
printf("请输入图的节点数和边数:\n");
scanf("%d%d", &n, &m);
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
graph[i][j] = 0;
}
}
printf("请输入每条边所连接的两个节点:\n");
for (k = 0; k < m; k++) {
scanf("%d%d", &i, &j);
graph[i][j] = 1;
// 如果是无向图,还需要设置 graph[j][i] = 1;
}
printf("邻接矩阵如下:\n");
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
printf("%d ", graph[i][j]);
}
printf("\n");
}
return 0;
}
```
输入格式为:
```
节点数 边数
i1 j1
i2 j2
...
im jm
```
其中 i 和 j 分别代表两个节点的编号,从 0 开始。如果是无向图,需要在 `graph[j][i]` 也设置为 1。输出结果为邻接矩阵。