- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
漫步迷宫非邻接表型c
//文件格式为.c #include stdio.h #include stdlib.h #include conio.h #include time.h #define MAX 20 typedef struct{ int row,col; int road[MAX][MAX]; //存储矩阵 1为墙 0为空 int start_row; int start_col;//进口坐标 int end_row; int end_col;//出口坐标 int dingdiannum; }ROAD; typedef struct{ int entry,exit;//进出口编号 int record[MAX*MAX]; int queue[MAX*MAX];//存储广度优先有哪些信誉好的足球投注网站访问到的顶点 int visited[MAX*MAX]; /*用visited[]数组标记图的结点是否遍历过*/ }SPARE; ROAD InPut(ROAD R)//手动输入迷宫 {//迷宫矩阵 int i,j; printf(请输入迷宫的规格:\n); printf( 行数= ); scanf(%d,R.row); printf( 列数= ); scanf(%d,R.col); R.dingdiannum=R.col*R.row; printf(顶点数为:%d\n,R.dingdiannum); for(i=0;iR.row;i++) { printf(输入 %d行 :[%d] ,i+1,i+1); for(j=0;jR.col;j++) scanf(%d,R.road[i][j]); } getchar();//读掉Enter键 return R; } ROAD PrintfRoad(ROAD R)//显示随机产生的矩阵 { int x,y; printf(列坐标- 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17\n); for(y=0;y=R.row;y++) { printf(第%d行为 :,y+1); for(x=0;x=R.col;x++) printf(%d ,R.road[y][x]); printf(\n); } printf(列数为: %d 行数为: %d,R.col+1,R.row+1); R.dingdiannum=(R.col+1)*(R.row+1); printf(顶点数为:%d\n,R.dingdiannum); getchar(); return R; } ROAD RoadAuto(ROAD R) {//随机构建迷宫矩阵 int b,x,y; srand((int)time(NULL)); b=12+(int)(6.0*rand()/(RAND_MAX+1.0)); R.col=9+(int)(8.0*rand()/(RAND_MAX+1.0));//列数9=row=17 R.row=6+(int)(3.0*rand()/(RAND_MAX+1.0));//行数6=col=10 for(y=0;y=R.row;y++) { for(x=0;xR.col;x++) if(x==0||y==0||y==R.row) R.road[y][x]=1;//加围墙 else R.road[y][x]=(int)(2.0*rand()/(RAND_MAX+1.0)); R.road[y][x]=1;//加围墙 } R=PrintfRoad(R); return R; } SPARE Seekpass(ROAD R,SPARE S)//广度优先收索思想,寻找到出口的路径 { int i,x,y,front=0,rear=1; S.entry=(R.start_row-1)*R.col+R.start_col-1; S.exit=(R.end_row-1)*R.col+R.end_col-1; for(i=0;iR.dingdiannum;i++) { S.record[i]=-1;//初始化 S.visited[i]=0;//初始化 } S.queue[rear]=S.entry;//第一个探索顶点入队,存储顶点编号 S.visited[S.entry]=1;//标示被访问 while(front!=rear) { x=S.queue[front+1]%R.col;//将编号转换为坐标 y=S.queue[front+1]/R
文档评论(0)