-*
struct _Node{ int x; int y; };
int main(int argc, const char * argv[]) {
int **grid= new int*[8]; for(int i=0;i<8;i++) {
grid[i]= new int[8]; }
grid[0][0]=1; grid[0][1]=1; grid[0][2]=0; grid[0][3]=0; grid[0][4]=0; grid[0][5]=0; grid
[0][6]=0; grid[0][7]=1;
grid[1][0]=1; grid[1][1]=1; grid[1][2]=1; grid[1][3]=1; grid[1][4]=1; grid[1][5]=1; grid
[1][6]=1; grid[1][7]=1;
grid[2][0]=1; grid[2][1]=0; grid[2][2]=0; grid[2][3]=0; grid[2][4]=1; grid[2][5]=0; grid
[2][6]=0; grid[2][7]=1;
grid[3][0]=1; grid[3][1]=1; grid[3][2]=1; grid[3][3]=0; grid[3][4]=1; grid[3][5]=0; grid
-*
[3][6]=0; grid[3][7]=1;
grid[4][0]=0; grid[4][1]=1; grid[4][2]=0; grid[4][3]=0; grid[4][4]=1; grid[4][5]=1; grid
[4][6]=1; grid[4][7]=1;
grid[5][0]=0; grid[5][1]=1; grid[5][2]=0; grid[5][3]=0; grid[5][4]=0; grid[5][5]=0; grid
[5][6]=0; grid[5][7]=1;
grid[6][0]=0; grid[6][1]=1; grid[6][2]=0; grid[6][3]=9; grid[6][4]=1; grid[6][5]=1; grid
[6][6]=1; grid[6][7]=1;
grid[7][0]=0; grid[7][1]=1; grid[7][2]=1; grid[7][3]=1; grid[7][4]=0; grid[7][5]=0; grid
[7][6]=1; grid[7][7]=0;
for(int i=0;i<8;i++) {
for(int j=0;j<8;j++) cout< return isPath(grid,8,8); } int isPath(int **grid, int m, int n) -* { if(grid[0][0]==0) return 0; if(grid[0][0]==9) return 1; int step=0; bool flag_down_success=true; bool flag_up_success=true; bool flag_left_success=true; bool flag_right_success=true; _TraversedNode *p=NULL; _TraversedNode *p_check=NULL; _TraversedNode *head=NULL; _TraversedNode *TraversedNode = new _TraversedNode; TraversedNode->x=0; TraversedNode->y=0; head=TraversedNode; p=TraversedNode; p->next=NULL; int count_node=0; int num_node=1; _Node *node=new _Node[n+m]; _Node *node_next=new _Node[n+m]; node[0].x=0; -* node[0].y=0; while(1) { for(int i=0;i if(node[i].x+1<=m-1) { if(grid[node[i].x+1][node[i].y]!=0) { if(grid[node[i].x+1][node[i].y]==9) { step++; cout<<\可以最短\步到达终点\ return 1; } p_check=head; while(p_check!=NULL) { if((p_check->x==node[i].x+1)&&(p_check->y==node[i].y)) { p_check=NULL; flag_down_success=false; } else { p_check=p_check->next; } } if(flag_down_success) -* { TraversedNode=new _TraversedNode; TraversedNode->x=node[i].x+1; TraversedNode->y=node[i].y; p->next=TraversedNode; p=TraversedNode; p->next=NULL; node_next[count_node].x=node[i].x+1; node_next[count_node].y=node[i].y; count_node++; } flag_down_success=true; } } if(node[i].x-1>=0) { if(grid[node[i].x-1][node[i].y]!=0) { if(grid[node[i].x-1][node[i].y]==9) { step++; cout<<\可以最短\步到达终点\ return 1; } p_check=head; while(p_check!=NULL) { if((p_check->x==node[i].x-1)&&(p_check->y==node[i].y))
亚信校招笔试题目



