版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、上机实验报告学 院: 计算机与信息技术学院专 业: 计算机科学与技术(师范)课程名称: 数据结构实验题目: 顺序栈的基本操作班级序号: 师范1班学 号: 201421012731 学生姓名: 邓雪指导教师: 杨红颖完成时间: 2015年12月25号1、 实验目的: 1熟悉掌握栈的定义、结构及性质; 2能够实现创建一个顺序栈,熟练实现入栈、出栈等栈的基本操作; 3了解和掌握栈的应用。2、 实验环境: Microsoft Visual c+ 6.03、 实验内容及要求: 栈是一种特殊的线性表,逻辑结构和线性表相同,只是其运算规则有更多的限制,故又称为受限的线性表。 建立顺序栈
2、,实现如下功能:1.建立一个顺序栈2.输出栈3.进栈4.退栈5.取栈顶元素6.清空栈7.判断栈是否为空进行栈的基本操作时要注意栈"后进先出"的特性。四、概要设计:1、通过循环,由键盘输入一串数据。创建并初始化一个顺序栈。 2、编写实现相关功能函数,完成子函数模块如下。 3、 调用子函数,实现菜单调用功能,完成顺序表的相关操作main建顺序栈进栈出栈取栈顶清空输出判栈空五、代码:#include<stdio.h>#include<stdlib.h>#define maxsize 64typedef int datatype;/定义结构体typedef
3、structdatatype datamaxsize;int top;seqstack;/建立顺序栈seqstack *SET(seqstack *s)int i;s=(seqstack*)malloc(sizeof(seqstack);s->top=-1;printf("请输入顺序栈元素(整型,以0结束):");scanf("%d",&i);do s->top+;s->datas->top=i;scanf("%d",&i);while(i!=0);printf("顺序栈建立成功n&q
4、uot;);return s;/清空栈void SETNULL(seqstack *s)s->top=-1;/判断栈空int EMPTY(seqstack *s)if(s->top>=0)return 0;else return 1;/进栈seqstack *PUSH(seqstack *s)int x;printf("你想要插入的数字:");scanf("%d",&x);if(s->top=maxsize-1)printf("overflow");return NULL;elses->top+;
5、s->datas->top=x;return s;/退栈seqstack *POP(seqstack *s)if(s->top<0)printf("underlow"); return s;elses->top-;printf("删除的栈顶元素是:");printf("%dn",(s->datas->top+1);return s;/取栈顶void TOP(seqstack *s)if(s->top<0)printf("stack is empty");else
6、printf("当前的栈顶元素是:");printf("%dn",(s->datas->top);/输出栈void print(seqstack *s)int i;if(s->top<0)printf("清空栈成功!");for(i=s->top;i>=0;i-)printf("%d ",s->datai);/主函数int main()seqstack *s;int i,j;printf("nntttt欢迎使用n");printf("tt_n&
7、quot;);printf("ttt1.建立一个顺序栈n");printf("ttt2.输出栈n");printf("ttt3.进栈n");printf("ttt4.退栈n");printf("ttt5.取栈顶元素n");printf("ttt6.清空栈n");printf("ttt7.判断栈是否为空n");printf("ttt8.结束程序n");printf("tt_n");doprintf("nn请选
8、择想要实现的功能:");scanf("%d",&i);switch(i)case 1:s=SET(s); break; case 2:print(s);printf("n");break; case 3:s=PUSH(s);print(s);printf("n");break;case 4:s=POP(s);print(s);printf("n");break;case 5:TOP(s);break;case 6:SETNULL(s);print(s);printf("n");break;case 7:j=EMPTY(s); if(j=1) printf("空栈n"); else printf("非空栈n"); break;case 8:printf("_谢谢使用_n"); exit (0);while(1);return 0;六、运行界面菜单功能七、实验中遇到的问题及总结1在写主函数时,如果是用void main的形式,那么可以不用有返回值,如果是int main或
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度人工智能教育平台开发与应用协议3篇
- 二零二五年度城市公共照明系统建设合同6篇
- 二零二五年度兼职餐饮服务合作协议范本2篇
- 自动喷涂建设项目可行性研究报告申请立项备案
- 二零二五年度不锈钢广告牌广告效果评估与优化合同3篇
- 2025年中国高纯生铁行业政策、市场规模及投资前景研究报告(智研咨询发布)
- 港口改造项目风险评估与应对措施
- 微生物控制剂建议书可行性研究报告备案
- 二零二五年度安全风险评估与治理合同
- 2025年度企业安全风险评估与隐患排查合同2篇
- OBE教育理念驱动下的文学类课程教学创新路径探究
- GB/T 20279-2024网络安全技术网络和终端隔离产品技术规范
- 2024年国家公务员考试《行测》真题卷(行政执法)答案和解析
- 2024年首届全国标准化知识竞赛真题题库导出版-下(判断题部分)
- 一年级下数学教案-笔算两位数减两位数(退位减)-苏教版秋
- 2024-2025学年高一地理新教材必修1配套课件 第6章 第4节 地理信息技术在防灾减灾中的应用
- 2024贵州省体育彩票管理中心招聘工作人员44人历年高频500题难、易错点模拟试题附带答案详解
- 电梯维护保养分包合同
- 10以内连加减口算练习题完整版139
- 2022-2023学年广东省广州市海珠区六年级(上)期末英语试卷(含答案)
- 2024至2030年中国沥青搅拌站行业市场现状调研及市场需求潜力报告
评论
0/150
提交评论