根据我的要求补充我发的代码
时间: 2024-02-24 12:58:06 浏览: 37
好的,根据你的要求,我对之前的代码进行了修改,现在能够读入多组数据,每组数据包括节点个数和节点序列。对于每个输入的序列,如果是汉密顿回路,就在一行中输出"YES",否则输出"NO"。代码如下:
```
#include <stdio.h>
#include <string.h>
#define MaxVex 210
int G[MaxVex][MaxVex]; // 邻接矩阵表示图
int visit[MaxVex] = {0};
int a[MaxVex] = {0};
int Nv, Ne;
void Init() {
// 读入图
scanf("%d%d", &Nv, &Ne);
int i, j;
for (i = 1; i <= Nv; i++) {
for (j = 1; j <= Nv; j++) {
G[i][j] = 0;
}
}
for (i = 0; i < Ne; i++) {
int v1, v2;
scanf("%d%d", &v1, &v2);
G[v1][v2] = G[v2][v1] = 1; // 无向图
}
}
// 判断序列是否是汉密尔顿回路
int isHamiltonian(int a[], int n) {
int i, j;
// 判断路径首尾是否相接
if (a[1] != a[n] || n != Nv) {
return 0;
}
// 判断路径是否经过了所有顶点
memset(visit, 0, sizeof(visit));
visit[a[1]] = 1;
for (i = 2; i <= Nv; i++) {
j = a[i];
if (!G[a[i-1]][j] || visit[j]) {
return 0;
}
visit[j] = 1;
}
return 1;
}
int main() {
int k;
scanf("%d", &k);
while (k--) {
Init();
int m;
scanf("%d", &m);
int i, j;
for (i = 0; i < m; i++) {
int n;
scanf("%d", &n);
for (j = 1; j <= n; j++) {
scanf("%d", &a[j]);
}
if (isHamiltonian(a, n)) {
printf("YES\n");
} else {
printf("NO\n");
}
}
}
return 0;
}
```
程序使用邻接矩阵表示图,使用isHamiltonian函数判断路径是否为汉密尔顿回路。在main函数中,首先读入数据组数k,然后循环读入每组数据,对于每个输入的序列,调用isHamiltonian函数判断是否为汉密尔顿回路。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)