sp; tail=psnew;
TF=false; //回溯
continue;
}
}
}
}
if (head->next!=NULL) //从找到的依次填入1,2---n的拉丁方阵中剔除可由其中其他拉丁方阵置换得到的拉丁方阵
{
for (psnew=head->next; psnew->next!=NULL; psnew=psnew->next)
{
for (tail=psnew->next, pm=psnew; tail!=NULL; tail=tail->next, pm=pm->next)
{
flag=0;
loop: for (i=0; i<N; i++)
{
for (j=0; j<N; j++)
{
for (k=0; k<N; k++)
{
if (*(psnew->Pb[k]+i)!=*(tail->Pa[k]+j))
{
flag=1;
break; //判断B1类型链表中两拉丁方阵对应的占位矩阵的所有列构成的两个集合是否相等
}
}
if (flag==1)
{
flag=0;
continue;
}
flag=1;
break;
}
if (flag==1)
{
flag=0;
continue;
}
flag=1;
break;