【www.arisingsemi.com--IT认证】
c语言flag #include#define N 65
typedef struct chessman{
int i;
int j;
int flag;
}chessman;
typedef struct{
chessman data[N];
int front;
int rear;
}quene;
chessman A[9][9];
void initquene(quene *Q)
{
Q->front=0;
Q->rear=0;
}
void input(quene *Q,chessman *p)
{
p->flag=1;
Q->rear++;
Q->data[Q->rear].i=p->i;
Q->data[Q->rear].j=p->j;
Q->data[Q->rear].flag=1;
}
chessman *output(quene *Q)
{
Q->front++;
return &(Q->data[Q->front-1]);
}
void visit(quene *Q,chessman *p)
{
if(Q->fronti+2)j+1)i+2][p->j+1].flag==0)
input(Q,&A[p->i+2][p->j+1]);
if((p->i+1)j+2)i+1][p->j+2].flag==0)
input(Q,&A[p->i+1][p->j+2]);
if((p->i-1)>0&&(p->j+2)i-1][p->j+2].flag==0)
input(Q,&A[p->i-1][p->j+2]);
if((p->i-2)>0&&(p->j+1)i-2][p->j+1].flag==0)
input(Q,&A[p->i-2][p->j+1]);
if((p->i-2)>0&&(p->j-1)>0)//右下方 -2 -1
if(A[p->i-2][p->j-1].flag==0)
input(Q,&A[p->i-2][p->j-1]);
if((p->i-1)>0&&(p->j-2)>0)//右下方 -1 -2
if(A[p->i-1][p->j-2].flag==0)
input(Q,&A[p->i-1][p->j-2]);
if((p->i+1)j-2)>0)//左下方 1 -2
if(A[p->i+1][p->j-2].flag==0)
input(Q,&A[p->i+1][p->j-2]);
if((p->i+2)j-1)>0)//左下方 2 -1
if(A[p->i+2][p->j-1].flag==0)
input(Q,&A[p->i+2][p->j-1]);
visit(Q, output(Q) );
}
}
void main()
{
int i,j,k,B[9][9];
chessman p;
quene Q;
cout