1 / 12
文档名称:

《数据结构》课程设计总结.docx

格式:docx   大小:72KB   页数:12页
下载后只包含 1 个 DOCX 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

《数据结构》课程设计总结.docx

上传人:zhuwo11 2022/6/9 文件大小:72 KB

下载得到文件列表

《数据结构》课程设计总结.docx

相关文档

文档介绍

文档介绍:《数据结构》
课程设计报告
题 目: 老鼠走迷宫
班 级:
姓 名:
学 号:
指导教师:
日 期: 2010 年 7 月 01 日
一、课程设计目标
1、 问题描述
本程序是利用非递归的方法求出一条走出迷;scanf("%d",&); printf("输入出口行坐标和列坐标:");scanf("%d",&);scanf("%d",&); if(MazePath(maze,S,start,end))
printpath(maze,S,size);
else printf("找不到通路!\n\n");
}
}
Status MazePath(int maze[12][12],SqStack &S, PosType start, PosType end)
{
PosType curpos;
int curstep;
SElemType e;
InitStack(S);
curpos = start;
curstep = 1; 〃定义初始化
do {
if (Pass(maze,curpos))
{
Markfoot(maze,curpos);
=1;
= curstep;
= curpos;
Push(S,e);
if (== && ==) return OK;
curpos = NextPos(curpos, 1);
curstep++;
} 〃查找成功,继续找下一个通路
else
{
if (!StackEmpty(S))
{
Pop(S,e);
while (==4 && !StackEmpty(S)) {
Markfoot(maze,);
Pop(S,e);
}
if (<4)
{
++;
Push(S, e);
curpos = NextPos(, );
}
}
}
} while (!StackEmpty(S));
return ERROR;//查找不成功,退回上一个通路位置
〈我所负责〉
}
void Initmaze(int maze[12][12],int size)
{
char select;
printf("选择创建方式A:自动生成B:手动创建5"); label:scanf("%c",&select);
if(select=='a'llselect=='A')
{
for(int i=0;ivsize+2;i++)maze[0][i]=l;
for( i=1;i<size+1;i++)
{
maze[i][0]=1;
for(int j=1;jvsize+1;j++)
maze[i][j]=rand()%2;
maze[i][size+1]=1;
}
for(i=0;ivsize+2;i++)maze[size+1][i]=1;
}〃自动创建迷宫的算法
else if(select=='b'llselect=='B')
{
printf("按行输入%d*%d数据,0代表可通,1代表不可通(每行以Enter结束):\n",size,size);
for(int i=0;i<size+2;i++)maze[0][i]=1;
for( i=1;i<size+1;i++)
{
maze[i][0]=1;
for(int j=1;j<size+1;j++)
scanf("%d", &m aze[i][j]);
maze[i][size+1]=1;
}
for(i=0;i<size+2;i++)maze[size+1][i]=1;
}
else if(select=='\n')goto label;
else printf("输入错误!");
}〃手动创建迷宫过程
void printmaze(int maze[12][12],int size)
{
printf("\n\n");
printf(”显示所建的迷宫(#表示外面的墙):\n");
for(int i=0;i<size+2;i++)printf("%c ”,# );printf("\n");
for(i=1;i<size+1;i++)
{
printf("%c ",‘ #');
for(int j=1;j<size+1;j++)
{
printf("%d ",maze[i][j]);
}
printf(”%c",#);
printf("