#define N 10 int a[N+1][N+1]; //存储图 int x[N+1];//记录颜色 int sum=0;//保存可着色方案数 void backtrace(int t,int m) { int i; if(t>N)//搜索至叶节点 { sum++; printf("第%d种方案:\n",sum); for(i=1;i<=N;i++) printf("%d ",x[i]); printf("\n"); } else { for(i=1;i<=m;i++) //逐个判断每种颜色 { if(check(t,i)) { x[t]=i; backtrace(t+1,m); } } } }
其中check()函数用于检测某个节点颜色是否合法,以下check()函数正确的是: