欢迎来到天天文库
浏览记录
ID:6781457
大小:217.50 KB
页数:12页
时间:2018-01-25
《c语言课程设计作业迷宫问题求解哈希表查找的设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一设计题目迷宫问题求解任务迷宫问题是取自心理学的一个古典实验。实验中,把一只老鼠从一个没有顶的大盒子的门放入,在盒中设置了许多墙,对行进的方向形成了多处阻挡。盒子仅仅有一个出口,在出口处放置了一块奶酪,吸引老鼠在迷宫中寻找道路以到达出口。重复对老鼠进行上述实验,看老鼠能在多久找到出口。功能要求输入迷宫布局输出走出迷宫的路径图需求分析用以下测试数据,0表示可以行走的区域,1表示不可行走的区域。入口1000101101011011011001011110出口概要设计structpoint{introw;intcol;intpredecessor;}queue[5
2、12];voidmap_maze(intm,intn)voidresult_maze(intm,intn)voidenqueue(structpointp)structpointdequeue()intempty()voidvisit(introw,intcol,intmaze[20][20])intpath(intmaze[20][20],intm,intn)程序调用关系如下:主程序模块寻找路径模块输出迷宫及路径模块输入迷宫模块详细设计#include#includeintX=1;intmaze[20][20];int
3、head=0,tail=0;structpoint{introw;intcol;intpredecessor;}queue[512];voidmap_maze(intm,intn){inti,j;printf("输入迷宫(0为路1为墙):");for(i=0;i4、"生成迷宫:");printf("入口");printf("↓");for(i=0;i5、for(j=0;j6、7、maze[i][j]==2)printf("0");if(maze[i][j]==1)printf("1");if(maze[i][j]==3)printf("*");}}printf("→出口");}voidenqueue(structpointp){queue[tail]=p;tail++;}structpointdequeue(){head++;returnqueue[head-1];}intempty(){returnhead==tail;}voidvisit(introw,i8、ntcol,intmaze[20][20]){structpointvisit_point={row,col,head-1};maze[row][col]=2;enqueue(visit_point);}intpath(intmaze[20][20],intm,intn){structpointp={0,0,-1};if(maze[0][0]==1){printf("##############################################################################");printf("迷宫9、无解");X=0;return0;}maze[0][0]=2;enqueue(p);while(!empty()){p=dequeue();if((p.row==m-1)&&(p.col==n-1))break;if((p.row+1=0)&&(maze[p.row-1][p.co10、l]==0))visit(p.row-1,p.col
4、"生成迷宫:");printf("入口");printf("↓");for(i=0;i5、for(j=0;j6、7、maze[i][j]==2)printf("0");if(maze[i][j]==1)printf("1");if(maze[i][j]==3)printf("*");}}printf("→出口");}voidenqueue(structpointp){queue[tail]=p;tail++;}structpointdequeue(){head++;returnqueue[head-1];}intempty(){returnhead==tail;}voidvisit(introw,i8、ntcol,intmaze[20][20]){structpointvisit_point={row,col,head-1};maze[row][col]=2;enqueue(visit_point);}intpath(intmaze[20][20],intm,intn){structpointp={0,0,-1};if(maze[0][0]==1){printf("##############################################################################");printf("迷宫9、无解");X=0;return0;}maze[0][0]=2;enqueue(p);while(!empty()){p=dequeue();if((p.row==m-1)&&(p.col==n-1))break;if((p.row+1=0)&&(maze[p.row-1][p.co10、l]==0))visit(p.row-1,p.col
5、for(j=0;j6、7、maze[i][j]==2)printf("0");if(maze[i][j]==1)printf("1");if(maze[i][j]==3)printf("*");}}printf("→出口");}voidenqueue(structpointp){queue[tail]=p;tail++;}structpointdequeue(){head++;returnqueue[head-1];}intempty(){returnhead==tail;}voidvisit(introw,i8、ntcol,intmaze[20][20]){structpointvisit_point={row,col,head-1};maze[row][col]=2;enqueue(visit_point);}intpath(intmaze[20][20],intm,intn){structpointp={0,0,-1};if(maze[0][0]==1){printf("##############################################################################");printf("迷宫9、无解");X=0;return0;}maze[0][0]=2;enqueue(p);while(!empty()){p=dequeue();if((p.row==m-1)&&(p.col==n-1))break;if((p.row+1=0)&&(maze[p.row-1][p.co10、l]==0))visit(p.row-1,p.col
6、
7、maze[i][j]==2)printf("0");if(maze[i][j]==1)printf("1");if(maze[i][j]==3)printf("*");}}printf("→出口");}voidenqueue(structpointp){queue[tail]=p;tail++;}structpointdequeue(){head++;returnqueue[head-1];}intempty(){returnhead==tail;}voidvisit(introw,i
8、ntcol,intmaze[20][20]){structpointvisit_point={row,col,head-1};maze[row][col]=2;enqueue(visit_point);}intpath(intmaze[20][20],intm,intn){structpointp={0,0,-1};if(maze[0][0]==1){printf("##############################################################################");printf("迷宫
9、无解");X=0;return0;}maze[0][0]=2;enqueue(p);while(!empty()){p=dequeue();if((p.row==m-1)&&(p.col==n-1))break;if((p.row+1=0)&&(maze[p.row-1][p.co
10、l]==0))visit(p.row-1,p.col
此文档下载收益归作者所有