迷宫问题,数据结构.docVIP

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
迷宫问题,数据结构

#includestdio.h #includestdlib.h #includetime.h #includeconio.h #define X 10 #define Y 10 #define OVERFLOW 0 #define ERROR 0 #define OK 1 #define STAK_INIT_SIZE 100 #define STACKINCREMENT 30 typedef int MazeType; typedef struct seat{ int x;int y; }PosType; typedef struct { int ord; PosType seat; int di; }SElemType; typedef struct { SElemType *base; SElemType *top; int stacksize; }SqStack; int Creat_Maze(MazeType Maze[][Y]); int InitStack(SqStack s); int StackEmpty(SqStack S); int Push(SqStack S,SElemType e); int Pop(SqStack S,SElemType e); int Pass(MazeType Maze[][Y],PosType curpos); void FootPrint(MazeType Maze[][Y],SElemType e); PosType NextPos(PosType Eseat,int di); int MazePath(MazeType Maze[][Y],PosType start,PosType end); int Extra(MazeType Maze[][Y],PosType start,PosType end); void OutputPath(MazeType Maze[][Y]); PosType start={1,1};PosType end={X-2,Y-2};//迷宫的出入口 int n; void main() { static MazeType Maze[X][Y]={0}; if(!Creat_Maze(Maze)) exit(ERROR); printf(\n1--由用户探索路径 \n2--由计算机探索路径\n请选择\n); scanf(%d,n); if(n==1) Extra(Maze,start,end); if(n==2) MazePath(Maze,start,end); } /************建立迷宫***********/ int Creat_Maze(MazeType Maze[][Y])/*出现过错误,形参写成了Maze[][]*/ { int i,j; int c; srand((unsigned)time(NULL)); for(j=0;jY;j++) { Maze[0][j]=1; Maze[X-1][j]=1; } for(i=1;iX-1;i++) { Maze[i][0]=1; Maze[i][Y-1]=1; }//建立围墙 printf(\t\t欢迎进入迷宫游戏\n\n); printf(※ 自动生成迷宫--1\n\n); printf(※ 手动生成迷宫--2\n\n); printf(※ 退出--其他数字键\n\n); printf( 请选择:); scanf(%d,c); system(cls); switch(c) { case 1: for(i=1;iX-1;i++) { for(j=1;jY-1;j++) { if((i==end.x)(j==end.y)||(i==start.x)(j==start.y)) Maze[i][j]=0; else Maze[i][j]=rand()%2; } } printf(生成的迷宫为:(按ENTER键开始探索):\n\n); OutputPath(Maze); return 1; case 2: Maze[1][3]=Maze[1][7]=Maze[2][3]=Maze[2][7]=Maze[3][5]=Maze[3][6]=Maze[4][2]=Maze[4][3]=Maze[4][4]=1; Maze[5][4]=Maze[6][2]=Maze[6][6]=Maze[7][2]=Maze[7][3]=1;Maze[7][4]=Maz

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档