- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《数据结构》上机实验报告—利用栈实现迷宫求解
福州大学数计学院
《数据结构》上机实验报告
专业和班级:信息计算科学与应用数学6班
学号姓名成绩实验名称栈、队列实验内容利用栈实现迷宫求解
实
验
目
的
和
要
求【实验目的】
应用栈结构来解决应用问题,加深对栈结构特点的认识和应用。
【基本要求】
首先实现一个以链表作存储结构的栈类型,然后编写一个求解迷宫的非递归程序。求得的通路以三元组(i,j,d)的形式输出,其中:(i,j)指示迷宫中的一个坐标,d表示走到下一坐标的方向。如:对于下列数据的迷宫,输出的一条通路为;(1,1,1),(1,2,2),(2,2,2),(3,2,3),(3,1,2),....
问
题
描
述
和
主
要
步
骤
【问题描述】
以一个m?n的长方阵表示迷宫,0和1分别表示迷宫中的通路和障碍。设计一个程序,对任意设定的迷宫,求出一条从入口到出口的通路,或得出没有通路的结论
【程序设计】
#include stdio.h
#include stdlib.h
#include string.h
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define OVERFLOW -2
#define INIT_SIZE 100 //存储空间初始分配量
#define INCREMENT 10 //存储空间分配增量
#define MAXLEN 10//迷宫包括外墙最大行列数目
typedef int Status;
typedef struct{ //迷宫中r行c列的位置
int r;
int c;
}PostType;
typedef struct{
int ord; //当前位置在路径上的序号
PostType seat;//当前坐标
int di; //往下一坐标的方向
}SElemType; //栈元素类型
typedef struct{
SElemType* base;//栈基址,构造前销毁后为空
SElemType* top;//栈顶
int stackSize; //栈容量
}Stack; //栈类型
Status InitStack(Stack S){ //构造空栈s
S.base=(SElemType*)malloc(INIT_SIZE *sizeof(SElemType));
if(!S.base)
exit(OVERFLOW);//存储分配失败
S.top=S.base;
S.stackSize=INIT_SIZE;
return OK;
}//InitStack
Status StackEmpty(Stack S){ //若s为空返回TRUE,否则返回FALSE
if(S.top==S.base)
return TRUE;
return FALSE;
}//StackEmpty
Status Push(Stack S,SElemType e){//插入元素e为新的栈顶元素
if(S.top-S.base =S.stackSize){//栈满,加空间
S.base=(SElemType *)realloc(S.base,(S.stackSize+INCREMENT)*sizeof(SElemType));
if(!S.base)
exit(OVERFLOW); //存储分配失败
S.top=S.base+S.stackSize;
S.stackSize+=INCREMENT;
}
*S.top++=e;
return OK;
}//push
Status Pop(Stack S,SElemType e){//若栈不空删除栈
//顶元素用e返回并返回OK,否则返回ERROR
if(S.top==S.base)
return ERROR;
e=*--S.top;
1亿VIP精品文档
相关文档
最近下载
- 2022《格力电器的财务比率分析报告》.docx
- 【名师公开课】人教版二年级下册第七单元《用估算解决问题》课堂实录逐字稿及教学反思.docx
- 儿科医疗质量控制指标(2020年版).docx
- 部编版小学道德与法治四年级下册《生活离不开他们》第二课时“感谢他们的劳动”教学设计.docx
- 2022年摩托车修理工初级模拟试题及答案(26).doc
- 中信证券2024-新发展格局系列报告之十二—公用事业价格改革的路径、影响、机会.pdf
- ABB工业传动中压交流传动 ACS580MV(200-6300kW, 3.3-11kV)硬件手册 安装和操作手册.pdf
- 2021年摩托车修理工中级模拟试题及答案卷26.doc VIP
- 2023-2024学年高二上学期物理期末复习测试卷.docx
- 京东方A:2023年年度报告.PDF
文档评论(0)