双向共享栈的操作.pdf

双向共享栈的操作.pdf

ID:55964825

大小:122.55 KB

页数:7页

时间:2020-06-18

双向共享栈的操作.pdf_第1页
双向共享栈的操作.pdf_第2页
双向共享栈的操作.pdf_第3页
双向共享栈的操作.pdf_第4页
双向共享栈的操作.pdf_第5页
资源描述:

《双向共享栈的操作.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、兰州城市学院实验报告院、系:信息工程学院计算机科学与技术姓名刘彦春学号20090801050112专业、班级(教育091本)课程名称数据结构——C语言描述实验室名称微机实验室实验名称共享栈的存储结构及其实现日期、时间2011年4月28日同组者无天气晴气压室(气)温实验报告内容:1.实验目的本次实验的主要目的是:(1)理解共享栈的概念;(2)掌握共享栈的存储结构的特点和数据结构的定义;(3)熟练掌握共享栈的基本操作的实现;(4)通过共享栈的实际应用,提高学生分析和解决实际问题的能力。2.实验内容本实验的内容包括:(1)掌握串的链式存储结构,包括:初始化共享栈(*InitStack)、进栈(Pus

2、h)、出栈(Pop)、判断栈是否为空(IsEmptyStack)、清空栈(ClearStack)等基本操作。(2)主控程序设计;3.实验要求(1)各基本操作设计要求如下:●DqStack*InitStack()功能:初始化共享栈。●intPush(DqStack*S,ElemTypee,inti)功能:把数据元素e压入i号堆栈。●intPop(DqStack*S,ElemType*e,inti)功能:从i号堆栈中弹出栈顶元素并送到e中。●intIsEmptyStack(DqStack*S)功能:判断栈是否为空,若为空返回1,若不是返回0。●intClearStack(DqStack*S)功能:

3、清空栈的内容。4.实验程序清单#include#include#include#defineMaxsize100#defineOK1#defineTURE1#defineFALSE0typedefintElemType;第1页,共7页typedefstruct{ElemTypes[Maxsize];inttop1;inttop2;}stack;stack*st;intinttStack()/*共享栈的初始化*/{st=(stack*)malloc(sizeof(stack));if(st==NULL)returnFALSE;st->to

4、p1=-1;st->top2=Maxsize;returnTURE;}intpush(inti,ElemTypex){if(st->top1==st->top2-1)printf("上溢出!");if(i==1)/*对第一个栈进行操作*/{st->top1++;st->s[st->top1]=x;}if(i==2)/*对第二个栈进行操作*/{st->top2--;st->s[st->top2]=x;}if(i!=1&&i!=2)printf("参数错误!");/*参数错误*/returnOK;}intpop(inti){intx;if(i==1)/*对第一个栈进行操作*/{if(st-

5、>top1==0)printf("栈1下溢出!");elsex=st->s[st->top1--];}第2页,共7页if(i==2)/*对第二个栈进行操作*/{if(st->top2==Maxsize)printf("栈2下溢出!");elsex=st->s[st->top2++];}if(i!=1&&i!=2)printf("参数错误!");/*参数错误*/returnx;}voidsetnull(inti)/*置空栈*/{if(i==1)st->top1=-1;if(i==2)st->top2=Maxsize;if(i!=1&&i!=2)printf("参数错误!");/*

6、参数错误*/}inttop(inti)/*读栈顶元素*/{intx;if(i==1){if(st->top1<0)printf("栈1无栈顶元素!");else{x=st->s[st->top1];printf("栈顶元素为:%d",x);}}if(i==2){if(st->top2>Maxsize-1)printf("栈2无栈顶元素!");else{x=st->s[st->top2];printf("栈顶元素为:%d",x);}}if(i!=1&&i!=2)第3页,共7页printf("参数错误!");/*参数错误*/returnOK;}voidsempty()/*判定栈是否为空

7、*/{if(st->top1<0)printf("栈1为空!");elseprintf("栈1不为空!");if(st->top2>Maxsize+1)printf("栈2为空!");elseprintf("栈2不为空!");}ElemTypeptop(inti)/*取栈顶元素*/{ElemTypex;if(i!=1&&i!=2)printf("参数错误!");/*参数错误*/

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

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

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