我做了一个欧拉路径算法,有什么问题?
#include <cstdio>
#include <vector>
#include <iostream>
#include <list>
using namespace std;
int graph[1000][1000]; // 1<n<1000
int n; // 그래프는 n x n
int i, j, degree[1000] = {},f=1;
list<int> lt1;
void oiler(int u) {
for(int v=0;v<n;v++){
while (graph[u][v]>0) {
graph[u][v]--;
graph[v][u]--;
oiler(v);
}
}
lt1.push_back(u);
}
int main(void) {
cin >> n;
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++) {
cin >> graph[i][j];
sum += graph[i][j];
}
}
oiler(0);
lt1.reverse();
list<int>::iterator iter = lt1.begin();
for(iter=lt1.begin(); iter!=lt1.end(); iter++)
{
printf("%d ", *iter+1);
}
}
输入是
6
0 1 0 1 1 1
1 0 1 1 1 0
0 1 0 1 0 0
1 1 1 0 1 0
1 1 0 1 0 1
1 0 0 0 1 0
输出是
1 2 3 4 1 5 2 4 5 6 1
它可以工作并产生真正的输出,但没有通过......如果我错过了什么,请告诉我