打印可以实现有向图和无向图的邻接矩阵,首先提问是有向图还是无向图,然后是输入节点数和边数,用一整个代码实现,规定用c语言。
时间: 2024-06-10 12:04:46 浏览: 59
好的,我了解你的要求。首先要确认是有向图还是无向图。请问是哪种图?
如果是有向图,那么可以使用以下的代码来打印邻接矩阵:
```
#include <stdio.h>
#define MAX_NODES 100
int main() {
int nodes, edges, i, j;
int matrix[MAX_NODES][MAX_NODES] = {0};
printf("请输入节点数和边数:\n");
scanf("%d %d", &nodes, &edges);
// 读取每条边,并将对应的矩阵元素设为1
printf("请输入每条边的起点和终点:\n");
for (int k = 0; k < edges; k++) {
int from, to;
scanf("%d %d", &from, &to);
matrix[from][to] = 1;
}
// 打印邻接矩阵
printf("邻接矩阵:\n");
for (i = 1; i <= nodes; i++) {
for (j = 1; j <= nodes; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
如果是无向图,那么可以稍微修改一下代码:
```
#include <stdio.h>
#define MAX_NODES 100
int main() {
int nodes, edges, i, j;
int matrix[MAX_NODES][MAX_NODES] = {0};
printf("请输入节点数和边数:\n");
scanf("%d %d", &nodes, &edges);
// 读取每条边,并将对应的矩阵元素设为1
printf("请输入每条边的起点和终点:\n");
for (int k = 0; k < edges; k++) {
int from, to;
scanf("%d %d", &from, &to);
matrix[from][to] = 1;
matrix[to][from] = 1;
}
// 打印邻接矩阵
printf("邻接矩阵:\n");
for (i = 1; i <= nodes; i++) {
for (j = 1; j <= nodes; j++) {
printf("%d ", matrix[i][j]);
}
printf("\n");
}
return 0;
}
```
阅读全文