顺序栈(作业版).doc

顺序栈(作业版).doc

ID:57673569

大小:153.00 KB

页数:9页

时间:2020-08-31

顺序栈(作业版).doc_第1页
顺序栈(作业版).doc_第2页
顺序栈(作业版).doc_第3页
顺序栈(作业版).doc_第4页
顺序栈(作业版).doc_第5页
资源描述:

《顺序栈(作业版).doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验4顺序栈的基本操作实验目的:1、熟悉将算法转换成程序代码的过程。2、了解单顺序栈的逻辑结构特性,熟练掌握顺序栈存储结构的C语言描述方法。3、熟练掌握顺序栈的基本操作:入栈、出栈等,掌握顺序栈的存取特性。实验内容:1、从键盘输入一组数据,进行入栈操作;2、获取出栈元素的值;3、能获取栈顶元素;4、打印顺序栈元素;5、输入输出语句利用cin和cout语句重新编写;6、给出程序及各项操作结果。实验步骤:#include#include#include#def

2、ineMAXSIZE100typedefintDataType;typedefstruct{DataTypedata[MAXSIZE];inttop;}SeqStack,*PSeqStack;PSeqStackInit_SeqStack(void){/*创建一顺序栈,入口参数无,返回一个指向顺序栈的指针,为零表示分配空间失败*/PSeqStackS;S=(PSeqStack)malloc(sizeof(SeqStack));if(S){S->top=-1;printf("置空栈成功!");}returnS;}

3、voidDestroy_SeqStack(PSeqStack*SeqStackPoint){/*销毁顺序栈,入口参数:为要销毁的顺序栈指针地址,无返回值*/if(*SeqStackPoint)free(*SeqStackPoint);*SeqStackPoint=NULL;return;}intEmpty_SeqStack(PSeqStackS){/*判断栈是否为空,入口参数:顺序栈,返回值:1表示为空,0表示非空*/if(S->top==-1)return1;elsereturn0;}intPush_SeqSt

4、ack(PSeqStackS,DataTypex){/*在栈顶插入一新元素x,入口参数:顺序栈,返回值:1表示入栈成功,0表示失败。*/if(S->top==MAXSIZE-1)return0;/*栈满不能入栈*/else{/*学生填写*/return1;}}intPop_SeqStack(PSeqStackS,DataType*x){/*删除栈顶元素并保存在*x,入口参数:顺序栈,返回值:1表示出栈成功,0表示失败。*/if(Empty_SeqStack(S))return0;/*栈空不能出栈*/else{/*

5、学生填写*/;return1;}}intGetTop_SeqStack(PSeqStackS,DataType*x){/*取出栈顶元素,入口参数:顺序栈,被取出的元素指针,这里用指针带出栈顶值/*/*返回值:1表示成功,0表示失败。*/if(Empty_SeqStack(S))return0;/*栈空*/else{/*学生填写*//*栈顶元素存入*x中*/return(1);}}voiddisplay(PSeqStackS){/*学生填写*/}voidmain(){/*学生填写*/}实验用测试数据和相关结果分析:

6、(由学生填写)0#include#include#include#defineMAXSIZE100//定义最大长度为100typedefintDataType;//定义DataType为整型typedefstruct{//用结构体定义一个栈DataTypedata[MAXSIZE];//定义data数组储存栈内数据inttop;//定义栈顶指针}SeqStack,*PSeqStack;//SeqStack为结构体类型.*PSeqStack为结构体指针

7、类型PSeqStackInit_SeqStack(void)/*创建一顺序栈,入口参数无,返回一个指向顺序栈的指针,为零表示分配空间失败*/{PSeqStackS;//定义结构体指针S.即为SeqStack*SS=(PSeqStack)malloc(sizeof(SeqStack));//动态创建一个PSeqStack类型的变量sif(S)//若S分配空间成功,另栈顶指针为-1,并返回S,否则返回0{S->top=-1;cout<<"置空栈成功!";returnS;}elsereturn0;}voidDest

8、roy_SeqStack(PSeqStack*SeqStackPoint)/*销毁顺序栈,入口参数:为要销毁的顺序栈指针地址,无返回值*/{if(*SeqStackPoint)//若*SeqStackPoint不为0,释放*SeqStackPoint空间,并令S为NULLfree(*SeqStackPoint);*SeqStackPoint=NULL;return;}in

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

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

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