数据结构实验二栈与队列的应用

数据结构实验二栈与队列的应用

ID:10477889

大小:45.50 KB

页数:5页

时间:2018-07-06

数据结构实验二栈与队列的应用_第1页
数据结构实验二栈与队列的应用_第2页
数据结构实验二栈与队列的应用_第3页
数据结构实验二栈与队列的应用_第4页
数据结构实验二栈与队列的应用_第5页
资源描述:

《数据结构实验二栈与队列的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、广东工业大学实验报告信息工程学院电子信息工程专业班成绩评定学号姓名(合作者____号____)教师签名_______实验二题目栈与队列的应用一、实验目的熟练掌握栈结构及其应用。二、实验内容利用栈结构具有先进后出的特性,编程实现:输入一个任意十进制数,转换为八进制数进行输出。三、实验步骤1、定义栈结构typedefstruct{int*base;int*top;intstacksize;}SqStack;2.设计基本算法1)对栈进行初始化:StatusInitStack(SqStack&S){//构造一个空栈S.base=(Selemtype*)malloc(stack_siz

2、e*sizeof(ElemType));if(!S.base)exit(OVERFLOW);S.top=S.base;S.stacksize=stack_size;returnOK;}//InitStack2)返回栈顶函数:StatusGetTop(SqStackS,Selemtype&e){//若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERRORif(S.top==S.base)returnERROR;e=*(S.top-1);returnOK;}//GetTop3)入栈函数StatusPush(SqStack&S,Selemtypee){//插入元素e为新的栈

3、顶元素if(S.top-S.base>=S.stacksize){//栈满,追加存储空间S.base=(ElemType*)realloc(S.base,(S.stacksize+stackincrement)*sizeof(ElemType));if(!S.base)exit(OVERFLOW);//存储分配失败S.top=S.base+S.stacksize;S.stacksize+=stackincrement;}*S.top++=e;returnOK;}//Push4)栈空处理函数StatusStackEmpty(SqStack&S){if(S.base==S.top

4、)returnOK;elsereturnERROR;}//StackEmpty5)出栈函数StatusPop(SqStack&S,Selemtype&e){//若栈不空,则删除S的栈顶元素,用e返回其值,并返回OK//,否则返回ERRORif(S.top==S.base)returnERROR;e=*--S.top;returnOK;}//Pop3.编写main()函数调用以上各函数,并进行调试,以验证在栈与队列的应用中,数制转换的实现.四、实验程序#include#include#defineOK1#defineERROR0#defin

5、eOVERFLOW-1#defineSTACK_INT_SIZE100//线性表存储空间的初始分配量#defineSTACKINCREMENT10//线性表存储空间的分配增量typedefintElemType;typedefintStatus;typedefintSelemtype;typedefstruct{int*base;int*top;intstacksize;}SqStack;StatusInitStack(SqStack&S){//构造一个空栈S.base=(int*)malloc(STACK_INT_SIZE*sizeof(ElemType));if(!S.b

6、ase)exit(OVERFLOW);S.top=S.base;S.stacksize=STACK_INT_SIZE;returnOK;}//InitStackStatusGetTop(SqStackS,Selemtype&e){//若栈不空,则用e返回S的栈顶元素,并返回OK;否则返回ERRORif(S.top==S.base)returnERROR;e=*(S.top-1);returnOK;}//GetTopStatusPush(SqStack&S,Selemtypee){//插入元素e为新的栈顶元素if(S.top-S.base>=S.stacksize){//栈满,

7、追加存储空间S.base=(ElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(ElemType));if(!S.base)exit(OVERFLOW);//存储分配失败S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;returnOK;}//PushStatusStackEmpty(SqStack&S){if(S.base==S.top)returnOK

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。