栈的基本操作.doc

栈的基本操作.doc

ID:55122674

大小:95.95 KB

页数:11页

时间:2020-04-27

栈的基本操作.doc_第1页
栈的基本操作.doc_第2页
栈的基本操作.doc_第3页
栈的基本操作.doc_第4页
栈的基本操作.doc_第5页
资源描述:

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

1、数据结构(DateStructure)上机报告学号201427187姓名杨荣庆班级信息143时间2015.11.28(一)上机目的1.掌握栈的插入、删除、栈的初始化及取栈顶元素等基本操作。2.理解栈的特点,掌握栈的定义和基本操作。3.掌握栈的顺序存储结构。(二)实验要求1.源代码(包括主要结构、主要语句、函数注释说明)。2.运行结果(包括程序如何使用,输入数据和输出结果)。3.实验体会和问题分析。(三)基本知识和原理按设定的初始量进行第一次存储分配,base可称为栈底指针,在顺序栈中,它始终指向栈底的位置,若base的值为NULL,则表明栈结构不

2、存在。称top为栈顶指针,其初值指向栈底,即top=base可作为栈空的标记,每当插入新的栈顶元素时,指针top增1;删除栈顶元素时,指针top减1,因此,非空栈中的栈顶指针始终在栈顶元素的下一个位置上。A出栈(top-1)ABABAAtoptoptoptopbaseA入栈baseB入栈baseB出栈(top-1)base入栈过程出栈过程11(三)程序算法分析及实现#includeusingnamespacestd;#defineSTACK_INIT_SIZE100#defineSTACKINCREMENT10typedef

3、struct{int*base;int*top;intstacksize;//当前栈可使用的最大容量}SqStack;voidInitStack(SqStack&S)//构造一个空栈{S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));if(!S.base){cout<<"存储分配失败!"<

4、//插入元素e为栈顶元素{if(S.top-S.base>=S.stacksize){S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int));if(!S.base)cout<<"存储分配失败!"<

5、=S.base;if(S.base==S.top)cout<<"当前栈为空栈!"<

6、.top!=S.base)b=*--S.top;if(S.top==S.base)cout<<"顺序栈已清空!"<

7、顶元素{if(S.top==S.base)cout<<"操作失败!"<

8、;cout<<"╭*****╳╳╳4、求栈顶元素╳╳╳*****╮"<

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

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

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