已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据结构(Date Structure)上机报告 学 号 201427187 姓 名 杨荣庆 班 级 信息143 时 间 2015.11.28 (1) 上机目的1. 掌握栈的插入、删除、栈的初始化及取栈顶元素等基本操作。2. 理解栈的特点,掌握栈的定义和基本操作。3. 掌握栈的顺序存储结构。(二)实验要求1. 源代码(包括主要结构、主要语句、函数注释说明)。2. 运行结果(包括程序如何使用,输入数据和输出结果)。3. 实验体会和问题分析。(3) 基本知识和原理按设定的初始量进行第一次存储分配,base可称为栈底指针,在顺序栈中,它始终指向栈底的位置,若base的值为NULL,则表明栈结构不存在。称top为栈顶指针,其初值指向栈底,即top=base可作为栈空的标记,每当插入新的栈顶元素时,指针top增1;删除栈顶元素时,指针top减1,因此,非空栈中的栈顶指针始终在栈顶元素的下一个位置上。 A出栈(top-1)ABABAAtoptoptoptopbase A入栈 base B入栈 base B出栈(top-1) base 入栈过程 出栈过程(3) 程序算法分析及实现#includeusing namespace std;# define STACK_INIT_SIZE 100# define STACKINCREMENT 10typedef struct int * base; int * top; int stacksize;/当前栈可使用的最大容量 SqStack;void InitStack(SqStack &S)/构造一个空栈S.base=(int *)malloc(STACK_INIT_SIZE*sizeof(int);if(!S.base) cout存储分配失败!endlendl;elseS.top=S.base;S.stacksize=STACK_INIT_SIZE;cout构造成功!=S.stacksize)S.base=(int *)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(int);if(!S.base) cout存储分配失败!endlendl;elseS.stacksize+=STACKINCREMENT;S.top=S.base+S.stacksize;*S.top+=e;void DisplayStack(SqStack &S) /从栈底到栈顶逐次显示栈中的元素int *p;p=S.base;if(S.base=S.top)cout当前栈为空栈!endlendl;elsecout当前栈内元素为: ;while(p!=S.top)cout*(p) ; p+;coutendl;void pop(SqStack &S,int &e) /出栈 if (S.top=S.base) cout操作失败!endlendl;else e=*-S.top;DisplayStack(S);void ClearStack(SqStack &S)/清空int b;while(S.top!=S.base) b=*-S.top;if(S.top=S.base) cout顺序栈已清空!endlendl;void StackEmpty(SqStack S)/判空if(S.top=S.base) cout顺序栈为空!endlendl;else cout顺序栈不为空!endlendl;void DestroyStack(SqStack &S)S.base=NULL;cout顺序栈已销毁!endlendl;void GetTop(SqStack S,int &e)/返回栈顶元素if(S.top=S.base) cout操作失败!endlendl;elsecout栈顶元素为: ;e=*(S.top-1);couteendlendl;int main() cout 201427187 杨荣庆 信息143 endl;cout*1、构造一个空栈* endl;cout*2、输入栈的元素* endl;cout*3、输出栈的元素* endl;cout*4、求栈顶元素 * endl;cout*5、删除栈顶元素* endl;cout*6、清空存在的栈* endl; cout*7、判断栈是否为空* endl;cout*0、销毁栈 * endl;int n,k;SqStack S;for(n=0;n15;n+)coutk;if(k=0) DestroyStack(S);n=15;if(k=1) InitStack(S);if(k=2) int a;couta;Push(S,a);DisplayStack(S);if(k=3) DisplayStack(S);if(k=4) int c;GetTop(S,c);if(k=5) int b;pop(S,b);if(k=6) ClearStack(S);if(k=7) StackEmpty(S);return 0;(4) 结果分析及测试相关记录 运行页面构建空栈及插入元素求栈顶元素删除栈顶元素清空顺序栈销毁栈(五)实验体会和学习感悟 在程序的编写过程中,有许许多多的错误,导致程序不能正常运行,在进行对书的翻看和网上搜索后终于解决了问题。对栈的基本定义和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年新能源汽车车规级传感器在自动驾驶领域的应用分析报告
- 2025年新能源企业数字化转型与能源需求侧管理研究报告
- 2025年新能源企业数字化供应链金融创新报告
- 高精度天文望远镜行业产业发展现状及未来发展趋势分析研究
- 甘肃省兰州市第八十一中学2024-2025学年九年级上学期期中考试英语试题(含答案)
- 2026年合金弹簧钢(粗钢)行业发展现状及未来趋势研究分析报告
- 2025年等级评定法的题库及答案
- 物业托管经营合同范本
- 2025年医院面试妇产科护理题目及答案
- 2025年神经内科护理常规题目及答案
- 产品生命周期管理表格产品更新换代决策参考
- 2025年国考税务面试真题及答案
- 中国石化安全员考试题库完整版及答案解析
- 知道网课《气的世界-太极健康探秘(上海中医药大学)》课后章节测试答案
- 新版中华民族共同体概论课件第八讲共奉中国与中华民族内聚发展(辽宋夏金时期)-2025年版
- 输电线路红外测温课件
- 露营知识技巧培训班课件
- (已压缩)国民体质测定标准(2023年修订)
- 2025年公安联考申论真题及解析答案
- 酶固定化新策略-洞察及研究
- 医院制剂研发课件模板
评论
0/150
提交评论