栈的顺序表示和实现

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 #i nclude #defi ne TRUE 1

#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");

}

相关文档
最新文档