预览加载中,请您耐心等待几秒...
1/7
2/7
3/7
4/7
5/7
6/7
7/7

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

数学与计算科学学院 实验报告 实验项目名称栈的顺序表示和实现 所属课程名称数据结构 实验类型验证型 实验日期2013.11.14 班级信计1201 学号201253100109 姓名 成绩 一、实验概述:【实验目的】 掌握栈的特点及顺序栈的基本运算 【实验原理】 1、栈是限定仅在表尾插入或删除操作的线性表,栈的修改是按后进先出的原则进行的 2、栈的顺序存储表示: #defineSTACK_INIT_SIZE6//存储空间初始分配量 #defineSTACKINCREMENT2//存储空间分配增量 typedefstruct{ SElemType*base;//在栈构造之前和销毁之后,base的值为NULL SElemType*top;//栈顶指针 intstacksize;//当前分配的存储空间,以元素为单位 }SqStack; 【实验环境】 VC++6.0二、实验内容:【实验方案】 编写主函数,调用栈的初始化建空栈、取栈顶元素、进栈以及出栈的算法,调制运行,得出结果。 【实验过程】(实验步骤、记录、数据、分析) 1、输入初始化建空栈、取栈顶元素、进栈、出栈算法和主函数: //栈的顺序存储表示 #defineSTACK_INIT_SIZE6;//存储空间初始分配量 #defineSTACKINCREMENT2;//存储空间分配增量 typedefstruct{ SElemType*base;//在栈构造之前和销毁之后,base的值为NULL SElemType*top;//栈顶指针 intstacksize;//当前分配的存储空间,以元素为单位 }SqStack; StatusInitStack(SqStack&S){ //构造一个空栈S ……………… }//InitStack StatusGetTop(SqStackS,SElemType&e){ //若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERROR ……………… }//GetTop StatusPush(SqStack&S,SElemTypee){ //插入元素e为新的栈顶元素 ……………… }//Push StatusPop(SqStack&S,SElemType&e){ //若栈顶不空,则删除S的栈顶元素,用e返回其值,并返回OK;否则返回ERROR ……………… }//Pop voidmain() { ……………… } 2、调试: 发现错误: 在以下编码中出现多个错误: StatusInitStack(SqStack&S){ S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType)); ①syntaxerror:missing')'before';'; ②syntaxerror:')'; ③illegalindirection; 这三个错误主要是由于前面栈的顺序存储表示编码中出现错误,应把“#defineSTACK_INIT_SIZE6;#defineSTACKINCREMENT2;”中的两个分号去掉; 修改之后,继续调试,又发现一个错误: ④'Sqstack':undeclaredidentifier即Sqstack无定义,查看前面编码发现,是对’SqStack’进行定义,故这里也要与之相应,需把’Sqstack’改为’SqStack’; 3、调试到无任何错误,运行: 因栈的存储空间初始化分配量为6,故需输入六个数字“2356775”,按回车键,得到“2356775;e=5”其中e=5表示栈顶元素为5,由此完成了栈的初始化建空栈、取栈顶元素算法;接着输入一个数“23”,表示要插入的元素,回车,得到“23567723;e=23;23”,此时“23”已进栈,栈顶元素变为e=23,因存储空间为6,而栈的修改是按后进先出原则进行,所以栈顶元素“23”先出栈,由此完成了栈的进栈、出栈算法;最终栈的顺序表示和实现得以完成。 【实验结论】(结果) 【实验小结】(收获体会) 这次上机,顺利的完成了栈的顺序表示和实现的上机实验任务,但是没有能够独立编写主函数,而是需要在老师和同学的帮助下才能够编写出来,所以自己还要继续努力,争取学会自己编写主函数。三、指导教师评语及成绩:评语评语等级优良中及格不及格1.实验报告按时完成,字迹清楚,文字叙述流畅,逻辑性强2.实验方案设计合理3.实验过程(实验步骤详细,记录完整,数据合理,分析透彻)4实验结论正确. 成绩: 指导教师签名: 批阅日期: 附录1:源程序 #include<stdio.h> #include<stdlib.h> #defineTRUE1 #defineFALSE0 #defineOK1 #define