欢迎来到天天文库
浏览记录
ID:42423884
大小:89.50 KB
页数:7页
时间:2019-09-14
《数据结构链式表示和实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、纟沙理J数学与统计学院实验报告课程名称数据结构A任课教师龚红仿实验项目名称栈的顺序表示和实现实验类型验证型实验日期2018⑸3班级电信1503学号201565110209姓名焦川江1实验环境:VC++6.0pc机2实验目的:实验目的:掌握栈的特点及顺序栈的基本运算实验要求:用顺序存储结构实现顺序栈的基本操作3实验原理:1、栈是限定仅在表尾插入或删除操作的线性表,栈的修改是按后进先出的原则进行的2、栈的顺序存储表示:#defineSTACK_INIT_SIZE6〃存储空间初始分配量#defineSTACKINCR
2、EMENT2〃存储空间分配增量typedefstruct{SElemType*base;〃在栈构造之前和销毁之后,base的值为NULLSElemType*top;〃栈顶指针intstacksize;〃当前分配的存储空间,以元素为单位JSqStack;4实验过程构造一个空栈若栈不空,则用e返冋S的栈顶元素插入元素e为新的栈顶元素显示打印栈中元素显示栈顶元素显示调用入栈算法后栈屮元素显示调用出栈算法后栈中元素显示弹出的栈顶元素3Cpp2.cppStatusPop(SqStack&S,SElenType&e)<1F
3、(S.top==S.base)returnERROR;e=»——S.top;returnOK;voidmain()printf(-}T印栈中7U>:->;For(i=O;i4、元素是:%d-we);请输入压入栈顶的元素:-);scanf(-%d-t&e);Push(Swe):调用入桟算法肓桟中元素:-);For(i=0;i5、(收获、体会和建议〉有了上次的上机经验,这次的上机比上次熟练了很多,打代码的速度也更快了,错误也比第一次要少很多了,对数据结构感觉更加了解了,学到了很多,栈的顺序表示和实现实验,让我对线性表的特点有了更多认识。7指导教师评语及成绩:评语评语等级优良中及格不及格实验方案设计的合理程度实验结论的记录情况实验总结情况实验报告是否按时完成,字迹清楚,文字叙述流畅,层次清晰成绩:指导教师签名:批阅日期:附录1:源程序#include#include#defineOKI#defineE6、RROR0#defineOVERFLOW-2#defineSTACKJNIT.SIZE5//#defineSTACKINCREMENT2typedefintStatus;typedefintSElemType;typedefstruct{SElemType*base;SElemType*top;intstacksize;JSqStack;StatusInitStack(SqStack&S){〃构造一个空栈S.base=(SElemType*)malloc(STACKJNIT_SIZE*sizeof(SElemT7、ype));if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=STACK」NIT_SIZE;returnOK;}StatusGetTop(SqStackS,SElemType&c){〃若栈不空,则用c返回S的栈顶元素if(S.top==S.base)returnERROR;e=*(S.top-l);〃插入元素e为新的栈顶元素returnOK;StatusPush(SqStack&S,SElemTypee){if(S.top-S.base>=S.stacksiz8、e)}S.base=(SElemType*)realloc(S.baseXS.stacksize+STACKINCREMENT)*sizeof(SElemType));if(!S.base)exit(OVERFLOW);S.top=S.base+S.stacksize;S.stacksize+二STACKINCREMENT;}*S.top++=e;returnOK;}StatusPop
4、元素是:%d-we);请输入压入栈顶的元素:-);scanf(-%d-t&e);Push(Swe):调用入桟算法肓桟中元素:-);For(i=0;i5、(收获、体会和建议〉有了上次的上机经验,这次的上机比上次熟练了很多,打代码的速度也更快了,错误也比第一次要少很多了,对数据结构感觉更加了解了,学到了很多,栈的顺序表示和实现实验,让我对线性表的特点有了更多认识。7指导教师评语及成绩:评语评语等级优良中及格不及格实验方案设计的合理程度实验结论的记录情况实验总结情况实验报告是否按时完成,字迹清楚,文字叙述流畅,层次清晰成绩:指导教师签名:批阅日期:附录1:源程序#include#include#defineOKI#defineE6、RROR0#defineOVERFLOW-2#defineSTACKJNIT.SIZE5//#defineSTACKINCREMENT2typedefintStatus;typedefintSElemType;typedefstruct{SElemType*base;SElemType*top;intstacksize;JSqStack;StatusInitStack(SqStack&S){〃构造一个空栈S.base=(SElemType*)malloc(STACKJNIT_SIZE*sizeof(SElemT7、ype));if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=STACK」NIT_SIZE;returnOK;}StatusGetTop(SqStackS,SElemType&c){〃若栈不空,则用c返回S的栈顶元素if(S.top==S.base)returnERROR;e=*(S.top-l);〃插入元素e为新的栈顶元素returnOK;StatusPush(SqStack&S,SElemTypee){if(S.top-S.base>=S.stacksiz8、e)}S.base=(SElemType*)realloc(S.baseXS.stacksize+STACKINCREMENT)*sizeof(SElemType));if(!S.base)exit(OVERFLOW);S.top=S.base+S.stacksize;S.stacksize+二STACKINCREMENT;}*S.top++=e;returnOK;}StatusPop
5、(收获、体会和建议〉有了上次的上机经验,这次的上机比上次熟练了很多,打代码的速度也更快了,错误也比第一次要少很多了,对数据结构感觉更加了解了,学到了很多,栈的顺序表示和实现实验,让我对线性表的特点有了更多认识。7指导教师评语及成绩:评语评语等级优良中及格不及格实验方案设计的合理程度实验结论的记录情况实验总结情况实验报告是否按时完成,字迹清楚,文字叙述流畅,层次清晰成绩:指导教师签名:批阅日期:附录1:源程序#include#include#defineOKI#defineE
6、RROR0#defineOVERFLOW-2#defineSTACKJNIT.SIZE5//#defineSTACKINCREMENT2typedefintStatus;typedefintSElemType;typedefstruct{SElemType*base;SElemType*top;intstacksize;JSqStack;StatusInitStack(SqStack&S){〃构造一个空栈S.base=(SElemType*)malloc(STACKJNIT_SIZE*sizeof(SElemT
7、ype));if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=STACK」NIT_SIZE;returnOK;}StatusGetTop(SqStackS,SElemType&c){〃若栈不空,则用c返回S的栈顶元素if(S.top==S.base)returnERROR;e=*(S.top-l);〃插入元素e为新的栈顶元素returnOK;StatusPush(SqStack&S,SElemTypee){if(S.top-S.base>=S.stacksiz
8、e)}S.base=(SElemType*)realloc(S.baseXS.stacksize+STACKINCREMENT)*sizeof(SElemType));if(!S.base)exit(OVERFLOW);S.top=S.base+S.stacksize;S.stacksize+二STACKINCREMENT;}*S.top++=e;returnOK;}StatusPop
此文档下载收益归作者所有