正在加载图片...
default: printf(error\n"): exit(-1) printf("\n) PosType Nextpos (Pos Type position, ElemType direction) PosType result result=position; switch(direction) case l: result. y++; break case 2: result. x++: break case 3: result. y- break case 4: result. x-- break return result Status passmaze( MazeType&maze, PosType start, Pos Type end, Stack&S){/找出迷宫的一条通路 Pos Type curpos SElemType e if(maze[ curpos.x][ curpos.y]!=PATH){ printf("当前迷宫没有入口n"); return false;} f(maze[ curpos.x][ curpos.y]==PAT){/当前位置可通 Push(S, e) f(curpos x==end. x&&curpos y=end. y)(maze [curpos. x][curpos y]=DESTINATION; return OK: I el maze[ curpos.x][ curpos.y]= RIGHT://从其向右走 curpos=Nextpos(curpos, 1) else{/当前位置不通 while(!StackEmpty(S)&&e di==4)t maze[e seat. x]Le. seat. y]=BACK Pop(s, e)default:printf("error\n");exit(-1); } } printf("\n"); } } PosType Nextpos(PosType position,ElemType direction){ PosType result; result=position; switch (direction) { case 1:result.y++;break; case 2:result.x++;break; case 3:result.y--;break; case 4:result.x--;break; } return result; } Status PassMaze(MazeType &maze,PosType start,PosType end,Stack &S){//找出迷宫的一条通路 PosType curpos; SElemType e; int curstep=1; curpos=start; if(maze[curpos.x][curpos.y]!=PATH) { printf("当前迷宫没有入口\n"); return FALSE;} do{ if(maze[curpos.x][curpos.y]==PATH){//当前位置可通 e.ord=curstep; e.seat=curpos; e.di=1; Push(S,e); if(curpos.x==end.x&&curpos.y==end.y){maze[curpos.x][curpos.y]=DESTINATION;return OK;} else{ maze[curpos.x][curpos.y]=RIGHT;//从其向右走 curpos=Nextpos(curpos,1); curstep++; } } else{//当前位置不通 GetTop(S,e); while(!StackEmpty(S)&&e.di==4){ maze[e.seat.x][e.seat.y]=BACK; Pop(S,e); curstep--;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有