欢迎来到天天文库
浏览记录
ID:11636041
大小:274.00 KB
页数:15页
时间:2018-07-13
《栈的定义及基本操作》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、附件2:北京理工大学珠海学院实验报告ZHUHAICAMPAUSOFBEIJINGINSTITUTEOFTECHNOLOGY班级学号姓名指导教师成绩实验题目栈的定义及基本操作实验时间一、实验目的、意义(1)理解栈的特点,掌握栈的定义和基本操作。(2)掌握进栈、出栈、取栈顶操作的实现方法,熟练掌握顺序栈的操作及应用。(3)栈的应用:数制转换和中缀表达式转后缀表达式二、实验内容及要求说明1:学生在上机实验时,需要自己设计出所涉及到的函数,同时设计多组输入数据并编写主程序分别调用这些函数,调试程序并对相应的输出作出分析;修改输入数据,预期输出并验证输出
2、的结果,加深对有关算法的理解。说明2:用数制的转换算法调试顺序栈的基本操作算法。编写主程序调用数制的转换conversion算法,再由conversion调用InitStack、StackEmpty、Push、Pop算法。修改输入数据,预期输出并验证输出的结果,加深对Push和Pop算法的理解。说明3:编写中缀转后缀表达式程序。具体要求:(1)定义顺序栈,完成栈的基本操作:初始化栈、入栈、出栈、取栈顶元素。(参见教材45页)(2)实现十进制数与八进制数的转换。(基本任务,必须完成)(3)实现中缀表达式转后缀表达式。由控制台输入中缀表达式,输出后
3、缀表达式。(附加任务,鼓励完成。)三、实验所涉及的知识点算法四、实验记录15(调试过程及调试中遇到的问题及解决办法,其他算法的存在与实践等。)五、实验结果及分析(所输入的数据及相应的运行结果,运行结果要有提示信息,运行结果采用截图方式给出。)初始界面进栈功能15遍历功能出栈功能判断是否为空15数制转换六、总结与体会(调试程序的心得与体会,若实验课上未完成调试,要认真找出错误并分析原因等。)七、程序清单(包含注释)/***************************************通用头文件**********************
4、*****************/#defineTRUE1#defineFLASE0#defineOK1#defineERROR0#defineINFREASIBLE-1#defineOVERFLOW-215#defineSIZE100//存储空间初始分配量#defineINCREMENT10//存储空间分配增量typedefintStatus;typedefintElemType;/*******************************顺序栈头文件*******************************/#include"Da
5、taStructure.h"#include"stdio.h"#include"stdlib.h"#include"string.h"typedefstruct{ElemType*top;//栈顶指针ElemType*base;//栈底指针intstacksize;//当前已分配的存储空间}SqStack;/*****************************************************基本操作的函数说明1.初始化InitStack(SqStack&s)2.置空ClearStack(SqStack&s)3.销毁Dest
6、royStack(SqStack&s)4.是否空StackEmpty(SqStacks)155.栈元素数StackLength(SqStacks)6.取栈顶元素GetTop(SqStacks,ElemType&e)7.进栈Push(SqStack&s,ElemTypee)8.出栈Pop(SqStack&s,ElemType&e)9.遍历StackTraverse(SqStacks)10.数值转换Conversion(SqStack*s,ElemTypeN)11.中缀转后缀EvaluateExperssion()*****************
7、************************************//***1.初始化***/StatusInitStack(SqStack*s){//构造一个空栈道Ss->base=(ElemType*)malloc(SIZE*sizeof(ElemType));if(!s->base)exit(OVERFLOW);s->top=s->base;s->stacksize=SIZE;returnOK;}/***END1.初始化***//***2.置空***/StatusClearStack(SqStack*s){s->top=s->bas
8、e;15returnOK;}/***END2.置空***//***3.销毁***/StatusDestroyStack(SqStack*s){Clea
此文档下载收益归作者所有