- 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 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.
{
(
您可能关注的文档
- cad比例设置(CAD scale setting).doc
- cad转mapgis(Cad转mapgis).doc
- cad渲染技巧(CAD rendering techniques).doc
- cai 教学六原则(蔡教学六原则).doc
- cass帮助文档(Cass help documentation).doc
- catia快捷键秘籍(Catia快捷键秘籍).doc
- catia快捷键(Catia快捷键).doc
- ccaa继续教育认证人员基础只是习题答案(100分)(CCAA continuing education certification personnel foundation is only answer to exercises (100 points)).doc
- ca证书申请(CA certificate request).doc
- ccie学习指南实验室操作目录(CCIE learning guide laboratory operating directory).doc
- c语言课程设计成绩管理系统代码(C language curriculum design performance management system code).doc
- c语言课程设计题目)(C language curriculum design topics)).doc
- c语言课程设计题目(全)(C language curriculum design topics (full)).doc
- c语言贪吃蛇源程序代码双人对抗(C language source program code double against snake).doc
- c语言转义符与格式控制符(C language symbol and character of format control).doc
- c语言选择程序设计(第五章)习题答案(C language program design (Chapter fifth) exercise answers).doc
- c语言重要出错知识点(C language is important knowledge point error).doc
- c语言输入输出格式(C language input and output format).doc
- c语言钟表设计(C language clock design).doc
- c语言阶段测试(C language test).doc
文档评论(0)