c语言课程设计——迷宫(C language curriculum design - maze).docVIP

c语言课程设计——迷宫(C language curriculum design - maze).doc

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

c语言课程设计——迷宫(C language curriculum design - maze) #包含iostream 使用命名空间; T类 { 公共: int x; y; int DIR;/ /点的下一个方向 }; 类linknode { 朋友类栈; 公共: T数据; linknode *下; }; 栈类:公共/一个链式栈 { 私人: LinkNode /栈顶元素顶; 公共: stack(); ~ stack(); 无效的推(T E);/ /入栈 T pop();/ /出栈 T getpop();/ /获取栈顶元素 无效clear(); 布尔empty(); }; 栈::stack() { 顶= null; } 栈::~ stack() { } 空堆栈::推(T E) { linknode * P; P =新linknode; P—数据= E; P 下=顶; 顶= P; } T:pop()堆栈: { T温度; linknode * P; P =顶; 最高顶下; 温度= P -数据; 删除P; 回复; } T:getpop()堆栈: { 返回顶部-数据; } 无效:clear()堆栈: { 顶= null; } 栈:empty() { 如果(= = null)返回1; 否则返回0; } INT动[ 4 ] [ 2 ] = { {0 },{ 0 },{ 0,1 },{ - 1,0 } };//方向 bool Mazepath(int *迷宫,int m,int n);/ /得出路径 虚空PrintPath(堆栈p);//打印路径 无效的恢复(int *迷宫,int m,int n);/ /复原迷宫 int * getmaze(int M,其中N);/ /形成迷宫 国际main() { int m = 0,n = 0; int *迷宫; 迷宫= getmaze(m,n); 如果(Mazepath(迷宫,m,n)) cout “迷宫路径探索成功!\n“; 别的cout “路径不存在!\n“; 返回0; } int * getmaze(int M,其中N) { int *迷宫; int i = 0,J = 0; cout “请输入迷宫的长和宽:”; N M CIN; cout “请输入迷宫内容:\n”; 迷宫=新的int * [ M + 2 ];//二维指针 为(i = 0;i M + 2;i++) { 迷宫[我] =新国际[ n + 2 ]; } 为(i = 1;i = m;i++) 为(J = 1;J = N;j++) CIN 迷宫[我] [ J ]; 为(i = 0;i M + 2;i++)/将迷宫外围设为障碍, 迷宫[我]的[ 0 ] =迷宫[我] [ n + 1 ] = 1; 为(i = 0;i n + 2;i++) 迷宫[ 0 ],[我] =迷宫[ M + 1 ] [我] = 1; 返回迷宫; }; bool Mazepath(int *迷宫,int m,int n) { 叠加q,p;/ / P存储路径,问为探索路径 T temp1,temp2; x,y,环; temp1 x = 1; temp1 y = 1; q.push(temp1); p.push(temp1); 迷宫[ 1 ] [ 1 ] = 1; 而(!问:empty()) { 问:getpop() temp2 =; 如果(!(第getpop()。x = =问:getpop()。x和y = = Q P getpop()。getpop()。Y)) p.push(temp2); For (loop=0; loop4; loop++ four) / / exploration direction { X=Temp2.x+move[loop][0]; Y=Temp2.y+move[loop][1]; If (maze[x][y]==0) / / if accessibility is stored in the Q { Temp1.x=x; Temp1.y=y; Maze[x][y]=-1; Q.Push (Temp1); } If ((x== (m) and (y==) (n))) / / if find export success { Temp1.x=m; Temp1.y=n; Temp1.dir=0; P.Push (Temp1); PrintPath (P); Restore (maze, m, n); Return 1; } } If (p.GetPop) (.X==q.GetPop) (.Xp.GetPop) (.Y==q.GetPop) (.Y) / top element on the stack must not. { (

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档