【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

本文来源:http://www.arisingsemi.com/it/85794/