栈的顺序表示和实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
沙理工久
数学与计算科学学院
实验报告
实验项目名称栈的顺序表示和实现
所属课程名称数据结构________________
实验类型验证型_________________________
实验日期2013.11.14 ______________________
班级信计1201 ______________
学号201253100109 ___________
姓名 _____________
成绩 _________________________
【实验过程】(实验步骤、记录、数据、分析)
1、输入初始化建空栈、取栈顶元素、进栈、出栈算法和主函数://栈的顺序存储表示
#define STACK_INIT_SIZE 6 ;//存储空间初始分配量
#define STACKINCREMENT 2 ;// 存储空间分配增量
typedef struct{
SElemType *base; //在栈构造之前和销毁之后,base的值为NULL SElemType *top; // 栈顶指针
int stacksize; //当前分配的存储空间,以元素为单位
}SqStack;
Status In itStack(SqStack & S){
//构造一个空栈S
}//lni tStack
Status GetTop(SqStack S,SEIemType & e){
//若栈不空,则用e返回S的栈顶元素,并返回OK ;否则返回ERROR
}//GetTop
Status Push(SqStack & S,SElemType e){
//插入元素e为新的栈顶元素
}//Push
Status Pop(SqStack & S,SEIemType & e){
//若栈顶不空,则删除S的栈顶元素,用e返回其值,并返回0K ;否则返回ERROR
}//Pop
void mai n()
{
码发现,是对’SqStack '进行定义,故这里也要与之相应,需
把'Sqstack '改为'SqStack ';
3、调试到无任何错误,运行:
因栈的存储空间初始化分配量为6,故需输入六个数字“2 3 56 7 7 5”,按回车键,得到“2 3 56 7 7 5 ;e=5 ”其中e=5表示栈顶元素为5,由此完成了栈的初始化建空栈、取栈顶元素算法;接着输入一个数“23 ”,表示要插入的元素,回车,得到“2 3 56 7 7 23 ;e=23 ;23”,此时“23”已进栈,栈顶元素变为e=23,因存储空间为6,而栈的修改是按后进先出原则进行,所以栈顶元素“23 ”先出栈,由此
【实验小结】(收获体会)
这次上机,顺利的完成了栈的顺序表示和实现的上机实验任务,但是没有能够独立编写主函数,而是需要在老师和同学的帮助下才能够编写出来,所以自己还要继续努力,争取学会自己编写主函数。
附录1:源程序
#i nclude
#defi ne FALSE 0
prin tf("e=%d\n",e);
sea nf("%d",&e);
Push(S,e);
for(i=0;i prin tf("%d ",*(S.base+i)); prin tf("\n"); Pop(S,e); prin tf("e=%d\n",e); for(i=0;i prin tf("%d ",*(S.base+i)); prin tf("\n"); }