- 4
- 0
- 约 4页
- 2016-12-06 发布于北京
- 举报
(迷宫问题的算法实现
#ifndef MMIGONG_H
#define MMIGONG_H
#define MAX_SIZE 100
#includeiostream
using namespace std;
struct Node
{
int x;
int y;
int di;
};
class Stack
{
private:
int rrow;
int ccolm;
int top;
int count;
int minlenght;
Node stack[MAX_SIZE];
Node sstack[MAX_SIZE];
public:
Stack(); //初始化
//int **InsortMiGong(); //输入迷宫(即一个二维数组)
void FindPath(int ab[][10]); //找出迷宫的出路
};
Stack::Stack() //初始化
{
rrow=0;
ccolm=0;
top=-1;
count=1;
minlenght=MAX_SIZE;
}
/*int ** Stack::InsortMiGong() //输入迷宫(即一个二维数组)
{
int row=1,colm=1;
while(true)
{
cout请输入迷宫的行数和列数:;
cinrowcolm;
if(row=0||colm=0)
{
cout输入错误!请重新输入:endl;
rrow=row;
ccolm=colm;
continue;
}
else
{
rrow=row;
ccolm=colm;
break;
}
}
int *mg[];
cout请输入迷宫矩阵(只有0和1两个数构成):;
for(int i=0;irow;i++)
for(int j=0;jcolm;j++)
cinmg[i][j];
return mg;
}*/
void Stack::FindPath(int ab[][10]) //找出迷宫的出路
{
int a,b,di,find,k;
top++;stack[top].x=1;
stack[top].y=1;
stack[top].di=-1;
ab[1][1]=-1;
while(top-1)
{
a=stack[top].x;
b=stack[top].y;
di=stack[top].di;
if(a==8b==8)
{
coutcount++:endl;
for(int k=0;k=top;k++)
{
cout(stack[k].x,stack[k].y);
if(!((k+1)%15))
coutendl;
}
coutendl;
if(top+1minlenght)
{
for(k=0;k=top;k++)
sstack[k]=stack[k];
minlenght=top+1;
}
ab[stack[top].x][stack[top].y]=0;
top--;
a=stack[top].x;
b=stack[top].y;
di=stack[top].di;
}
find=0;
while(di8!find)
{
di++;
switch(di)
{
case 0:a=stack[top].x-1;b=stack[top].y;break;
case 1:a=stack[top].x;b=stack[top].y+1;break;
case 2:a=stack[top].x+1;b=stack[top].y;break;
case 3:a=stack[top].x;b=stack[top].y-1;break;
}
if(ab[a][b]==0)
find=1;
}
if (find==1)
{
stack[top].di=di;
top++;
stack[top].x=a;
stack[top].y=b;
stack[top].di=-1;
ab[a][b]=-1;
}
else
{
ab[stack[top].x][stack[top].y]=0;
top--;
}
}
coutendl;
cout走出迷宫最短的路径是:endl;
cout其长度为:minlenghtendl;
cout路径是:endl;
for(k=0;kminlenght;k++)
{
cout(sstack
您可能关注的文档
- (软考软件设计师模拟试题及答案解析.docx
- (轻叩诗歌的大门练习题.doc
- (辅导员工作状况调查问卷.doc
- (辅导员面试题目.doc
- (输变电工程公司的管理沟通研究开题报告.doc
- (辨析并修改病句练习题.doc
- (辨析题及解答题.doc
- (辣椒的调查报告分析.doc
- (辨析题马克思主义化就是把马克思主义基本原理与的具体实际相结合.doc
- (辨证思维与高中话题作文.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 幽默卡通动漫笑点设计方法.docx VIP
- 行星式球磨机立式-FOCUCY弗卡斯.PDF VIP
- 贵州省六校联考2025届高三下学期3月高考实用性联考(四)英语试卷(含答案).docx VIP
- 颈椎病的中医护理课件.pptx VIP
- 原调正谱G小小蝴蝶la farfalletta钢琴伴奏高清打印版.pdf VIP
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(B卷)附参考答案.pdf
- 广发证券-交通银行-601328-零售转型提速,定增落地夯实资本根基.pdf
- 上海大学2024-2025学年第1学期《高等数学(上)》期末考试试卷(A卷)附参考答案.pdf
- 循环系统护理小讲课.pptx
- 建筑屋面西瓦专项施工方案(范本).doc VIP
原创力文档

文档评论(0)