用c语言判断是有向图还是无向图1
时间: 2023-12-17 21:03:06 浏览: 82
判断一个图是有向图还是无向图,可以根据其邻接矩阵来判断。邻接矩阵是一个二维数组,其中第i行第j列的元素表示顶点i和顶点j之间是否存在边。对于无向图,邻接矩阵是对称的,即a[i][j] = a[j][i]。而对于有向图,则不一定对称。因此,我们可以通过判断邻接矩阵是否对称来判断图是有向图还是无向图。下面是一段用C语言实现判断有向图和无向图的代码:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX 100
int main()
{
int n, i, j, adj[MAX][MAX], isDirected = 1;
printf("Enter the number of vertices:\n");
scanf("%d", &n);
printf("Enter the adjacency matrix:\n");
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
scanf("%d", &adj[i][j]);
// Check if the graph is directed or undirected
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if(adj[i][j] != adj[j][i])
{
isDirected = 1;
break;
}
else
isDirected = 0;
if(isDirected)
printf("The graph is directed.\n");
else
printf("The graph is undirected.\n");
return 0;
}
```
在这个代码中,我们首先读入邻接矩阵。然后,我们遍历邻接矩阵,如果发现邻接矩阵不对称,就说明这是一个有向图;否则,就说明这是一个无向图。最后,我们输出判断结果。
阅读全文