rk=trial(i, j, k, n, m, p, t);
if (i==0&&j==0)
{
current->sign=1;
}
else
{
current->sign=psnewaf->sign+1;
}
current->next=NULL;
psnewaf->next=current;
current->before=psnewaf; //(i,j)元作为节点压入栈
psnewbe=psnewaf;
psnewaf=current;
*(t[i]+j)=1; //(i,j)元标志为已走
}
else //从k方向的下一方向开始为(i,j)元找到了可走方向trial(i, j, k, n, m, p, t)
{
psnewaf->mark=trial(i, j, k, n, m, p, t); //相应更新(i,j)元节点中的方向
}
convert(&i, &j, trial(i, j, k, n, m, p, t)); //沿找到的方向从(i,j)元递进至下一单元
k=0; //为为下一单元从头开始寻找新方向作准备
if (i==(m-1)&&j==(n-1)) //抵达迷宫出口
{
flag=1; //标志变量置1
current=(Record1 *) malloc(sizeof(Record1));
current->x=i;
current->y=j;
current->sign=psnewaf->sign+1; //建立并压入代表迷宫出口的尾节点
current->next=NULL;
psnewaf->next=current;
current->before=psnewaf;
Num++; //找到路径数增1
printf("\nThe %dnd possible route:\n", Num); //输出路径序号
current=head->next;
while (current!=NULL)
{
if (current->next!=NULL)
{
printf ("(%d,%d)->", current->x+1, current->y+1); //输出找到的路径
}
else
{
printf ("(%d,%d) ", current->x+1, cu