找出无向图中所有环的c语言代码
时间: 2023-02-23 22:34:39 浏览: 50
下面是一个示例代码,可以帮助您在无向图中找到所有环:
```
#include<stdio.h>
#include<stdlib.h>
#define MAX 100
#define NotAVertex -1
typedef int Vertex;
typedef int Graph[MAX][MAX];
Graph G;
int n, m, T;
Vertex path[MAX];
bool st[MAX];
void ReadData()
{
scanf("%d%d", &n, &m);
for (int i = 0; i < m; i++)
{
int a, b;
scanf("%d%d", &a, &b);
G[a][b] = G[b][a] = 1;
}
}
bool Check(Vertex u, Vertex v)
{
if (G[u][v] == 0)
return false;
for (int i = 0; i < n; i++)
if (G[u][i] && G[i][v])
return false;
return true;
}
void PrintCycle(Vertex u, Vertex v)
{
for (int i = T - 1; i >= 0; i--)
printf("%d ", path[i]);
printf("%d %d\n", u, v);
}
void DFS(Vertex u, Vertex v)
{
path[T++] = u;
st[u] = true;
for (int w = 0; w < n; w++)
if (G[u][w] && !st[w])
{
DFS(w, u);
if (T > 2 && u == v && Check(w, path[T - 2]))
PrintCycle(w, path[T - 2]);
}
T--;
st[u] = false;
}
int main()
{
ReadData();
for (int u = 0; u < n; u++)
{
for (int i = 0; i < n; i++)
st[i] = false;
T = 0;
DFS(u, NotAVertex);
}
return 0;
}
```
请注意,这只是一个简单的示例代码,可能存在漏洞和缺陷,因此在生产环境中使用前请仔细检查。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)