数据结构迷宫问题实验报告Word格式文档下载.docx
- 文档编号:13760120
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:12
- 大小:121.46KB
数据结构迷宫问题实验报告Word格式文档下载.docx
《数据结构迷宫问题实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《数据结构迷宫问题实验报告Word格式文档下载.docx(12页珍藏版)》请在冰豆网上搜索。
D={ai|ai属于CharSet,i=1、2…n,n>
=0}
数据关系:
R={<
ai-1,ai>
|ai-1,ai属于D,i=2,3,…n}
基本操作:
InitStack(&
S)
操作结果:
构造一个空栈
Push(&
S,e)
初始条件:
栈已经存在
将e所指向的数据加入到栈s中
Pop(&
S,&
e)
若栈不为空,用e返回栈顶元
StackEmpty(&
判断栈是否为空。
若栈为空,返回1,否则返回0
Destroy(&
销毁栈s
}ADTStack
(2)设定迷宫的抽象数据类型定义
ADTyanshu{
D={ai,j|ai,j属于{、'
‘*'
‘@‘#'
},0<
=i<
=M,0<
=j<
=N}
R={ROW,COL}
ROW={<
ai-1,j,ai,j>
|ai-1,j,ai,j属于D,i=1,2,…M,j=0,1,…N}
COL={<
ai,j-1,ai,j>
|ai,j-1,ai,j属于D,i=0,1,…Mj=1,2,…N}
InitMaze(MazeType&
maze,inta[][COL],introw,intcol){
二维数组inta[][COL],已经存在,其中第1至第m-1行,每行自第1到第n-1列的元素已经值,并以值0表示障碍,值1表示通路。
构造迷宫的整形数组,以空白表示通路,字符‘表示障碍
在迷宫四周加上一圈障碍
MazePath(&
maze){
迷宫maze已被赋值
若迷宫maze中存在一条通路,则按如下规定改变maze的状态;
以字符’*'
表示路径上的位置。
字符’@'
表示'
死胡同’;
否则迷宫的状态不变
}
PrintMaze(M){
迷宫M已存在
以字符形式输出迷宫
ADTmaze
(3)本程序包括三个模块
a、主程序模块
voidmain()
{
初始化;
构造迷宫;
迷宫求解;
迷宫输出;
b、栈模块——实现栈的抽象数据类型
c、迷宫模块一一实现迷宫的抽象数据类型
2、详细设计
(1)坐标位置类型:
typedefstruct{
introw;
....的列
}PosType先呢,想自己读入数据的,回来发现那样,很麻烦,所以还是事先定义一个迷宫。
2.栈的元素类型一开始有点迷惑,后来就解决了
3.本题中三个主要算法;
InitMaze,MazePath和PrintMaze的时间复杂度均为0(m*n)本题的空间复杂度也是0(m*n)
五、用户使用说明
1.本程序运行在windows系列的操作系统下,执行文件为:
。
六、程序运行结果
i.建立迷宫:
•"
I.
1
2.通过1功能建立8*8的迷宫后,通过2功能继续建立迷宫内部:
•'
GAU5ER5\PEKAI-n.DF^fSlt-^^Dcbug'
-.Mazc.cxc'
-□X
Rof暮林*工口tx*當富押|&
壬两]5拐.潢]沛師杠工迄專*冲c富4:
*
1请辙a宫的聽,婕刃青输入迷宫內墙单元数謎宫蹴如下
瑚人迷宫的3和终点踹出结果
磋岀
犢选偉2
诗输人述目內雷埜兀熱10
话低枚辅人此旨n堆乐卜单元刿亍就列皱左梏廣幵:
23
45
42
34
46
2b
37
65
43
k5
愉越拼音轴人法全:
通过建立自己设定单元数目建立迷宫内墙。
3•通过3功能观察已建立的迷宫结构:
SlT
4•通过4功能确立迷宫起点和终点:
(此处像我们随机选择4,4和2,7分别为起点终点)
TMJ^RJ^EKAHkPESKTOP.^^Jt^^XPtljuflWazrjeKe'
澹输小爭宜的行敢列數2请输入讲盲內埼阜厂抑卷鏑恂如下
嫌人迷宫的起点和线点瞬I出结卑
嚨出
谨型军4
请搐人起点的荷毀列勲请箍A撰点的彳亍觌列热
5•执行5功能,判断是否有路径走岀迷宫:
I■■£
s\USER5!
\PEKAH\DESKTClFl^^12?
¥
:
^\De±
』ghWazf-exe"
OX
九其丈尊冨心龙4■當砂富草*鼻珀**|(土c*鼻冨轴护匚刚]_及耳・1518011呂・勿|沛百工席皿*4*扛4■事弹事車事―常就常鼻却
A
1请输入译宜的行数月滋
2请輸心带有內垢阜厂曲卷鏑恂如下
婚商人迷宫的起点和终点瞞岀结甲
嚨岀
脱揮5
也辻手殳肓从人口到出TI的斑良・谢激復用刘宀駅世卷序愉X』退注
肚越拼音输A塗全:
V
这种情况无法走出迷宫。
我们再次观察图像设4,4和1,6分别为起点终点,再运行5功能
・1P却JSERSIPEKAHIPES灯。
1诸建立件却gbuq'
.M丑乐珈才一口X
屮首铲吋亨皆存屮的Hn+r宣|耳黄買|[耶-巧1呂。
1丄吕■刘帝亍航卄椚會扌申巧卄習艸甘杆尸忡想冲申齐
1请输入迷宫潮亍埶歹虜时输入趁宫内墙单元齟制有亡构划-
曲》人注宫的起点和轅点
5输出纯蛊
滤出
遣逛择-1
情输入起蔬的•厅叙理撩〈空幡隔卄厂14青输入络点BW纵列勣佐榕隔幵L〔■
观察到可以成功解开迷宫步数从1依次开始
七、程序清单
#include<
>
ase=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));
if(!
(*S).base)
exit(O);
(*S).top=(*S).base;
tacksize=STACK_INIT_SIZE;
return1;
op-(*S).base>
=(*S).stacksize)ase=(SElemType*)realloc((*S).base,
((*S).stacksize+STACKINCREMENT)*sizeof(SElemType));
exit(0);
(*S).top=(*S).base+(*S).stacksize;
(*S).stacksize+=STACKINCREMENT;
*((*S).top)++=e;
op==(*S).base)
return0;
*e=*--(*S).top;
;
+=direc[di].y;
returnc;
//使迷宫m的b点的序号变为-1(不能通过的路径)
voidMarkPrint(PosTypeb)
m[][]=-1;
//若迷宫maze中存在从入口start到出口end的通道,则求得一条
//存放在栈中(从栈底到栈顶),并返回1;
否则返回0
intMazePath(PosTypestart,PosTypeend)
SqStackS;
PosTypecurpos;
SElemTypee;
InitStack(&
S);
curpos=start;
do
if(Pass(curpos))
{//当前位置可以通过,即是未曾走到过的通道块
FootPrint(curpos);
//留下足迹
=curstep;
=0;
Push(&
S,e);
//入栈当前位置及状态
curstep++;
//足迹加1
if==&
&
==//到达终点(出口)
curpos=NextPos(curpos,;
else
{//当前位置不能通过
if(!
StackEmpty(S))
Pop(&
e);
//退栈到前一位置
curstep--;
(北)
while==3&
!
StackEmpty(S))//前一位置处于最后一个方向{
MarkPrint;
//留下不能通过的标记(-1)
//退回一步
if<
3)//没到最后一个方向(北)
++;
//换下一个方向探索
curstep++;
//设定当前位置是该新方向上的相邻块
curpos=NextPos,;
}while(!
StackEmpty(S));
//输出迷宫的结构
voidPrint(intx,inty)
inti,j;
for(i=0;
i<
x;
i++)
for(j=0;
j<
y;
j++)
printf("
%3d"
m[i][j]);
\n"
);
voidmain()
PosTypebegin,end;
inti,j,x,y,x1,y1,n,k;
do{
system("
cls"
//清屏函数
***********************
**\n\n\n"
switch(n)
case1:
scanf("
%d%d"
&
x,&
y);
i++)//定义周边值为0(同墙){
m[0][i]=0;
//迷宫上面行的周边即上边墙m[x-1][i]=0;
//迷宫下面行的周边即下边墙
for(j=1;
y-1;
m[j][0]=0;
//迷宫左边列的周边即左边墙
m[j][y-1]=0;
//迷宫右边列的周边即右边墙
for(i=1;
x-1;
m[i][j]=1;
//定义通道初值为1}break;
case2:
{printf("
请输入迷宫内墙单元数:
"
%d"
&
j);
请依次输入迷宫内墙每个单元的行数,列数:
(空格隔开)\n"
=j;
x1,&
y1);
m[x1][y1]=0;
}break;
1,输
case3:
{Print(x,y);
刘沛航建立的迷宫,定义墙元素值为0,可通过路径为
入0退出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 迷宫 问题 实验 报告