欧拉回路算法中,判是否有欧拉回路的时候(分有向和无向图)
for(int i=1;i<=n;i++){
if(type==1)
if(din[i] + dout[i] & 1){
printf("NO\n");
return 0;
}
else
if(din[i]!=dout[i]){
printf("NO\n");
return 0;
}
}
上面是错的
if (T == 1) {//无向图需保证每个点的度为偶数
for (int i = 1; i <= n; i++) {
if ((din[i] + dout[i]) % 2) {
printf("NO\n"); return 0;
}
}
}
else {//有向图需保证每个点的出度与入度相等
for (int i = 1; i <= n; i++) {
if (din[i] != dout[i]) {
printf("NO\n"); return 0;
}
}
}
这样就对了
我:???(这俩的区别就是先if再循环还是先循环再if
求大佬赐教