正在加载图片...
if(S top==S base)return TRUE else return False. 1//StackEmpty Status StackTraverse(Stack S, Status (*visit)(SElemType))I /从栈底元素到栈顶元素依次执行 vIsIt函数,通常用于输出栈中元素 SElemType *p=S base if(S.base=S.top) printf("空栈\n") while(p<S top)f(*visit)(*p): ++p: I Status PrintSElem(SElemType e) printf(step: %d to (%d, %d)\n", e. ord, e. seat. x, e. seat. y) return oK 迷宫求解的具体算法一 Status makemaze( MazeType&maze){//生成迷宫,"0”表示通PATH,"1"表示不通WAL srand(time(NULL)) for(m. y=0; m. y<=9; m. y++)Maze [O] [m, y]=WALL; maze [9][m y]=WALL; for(m x=l: m x=8: m x++)maze [m x][O]=WALL; maze [m x][9]=WALL; K for(m for(m y=l; m. y<=8: m. y++) maze [m x][m y]=rand(%2 1//MakeMaze void PrintMaze(Maze Type maze)I int x,y for(x=0;x<=9;x++){ switch(maze [x]ly])t case WALL: printf(a"): break case PATH: printf("): break case RIGHT: printf("-"): break: case LEFT: printf("+): break case BACK: printf(e"): break case DESTINATION: printf(@"): breakif(S.top==S.base)return TRUE; else return FALSE; }//StackEmpty Status StackTraverse(Stack S,Status (*visit)(SElemType)){ //从栈底元素到栈顶元素依次执行visit函数,通常用于输出栈中元素 SElemType *p=S.base; if(S.base==S.top)printf("空栈\n"); else while(p<S.top){(*visit)(*p);++p;} return OK; } Status PrintSElem(SElemType e){ printf("step:%d to (%d,%d)\n",e.ord,e.seat.x,e.seat.y); return OK; } //------迷宫求解的具体算法---------------------------------------// Status MakeMaze(MazeType &maze){//生成迷宫,"0"表示通PATH,"1"表示不通WALL PosType m; srand(time(NULL)); for(m.y=0;m.y<=9;m.y++) {maze[0][m.y]=WALL;maze[9][m.y]=WALL;} for(m.x=1;m.x<=8;m.x++) {maze[m.x][0]=WALL;maze[m.x][9]=WALL;} for(m.x=1;m.x<=8;m.x++) for(m.y=1;m.y<=8;m.y++) maze[m.x][m.y]=rand()%2; return OK; }//MakeMaze void PrintMaze(MazeType maze){ int x,y; for(x=0;x<=9;x++){ for(y=0;y<=9;y++){ switch(maze[x][y]){ case WALL:printf("■");break; case PATH:printf(" ");break; case RIGHT:printf("→");break; case DOWN: printf("↓");break; case LEFT: printf("←");break; case UP: printf("↑");break; case BACK: printf("@ ");break; case DESTINATION:printf("◎");break;
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有