




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一个顺序栈的大体运算实验一、实验目的:对一个顺序栈的大体运算进行分析与设计,回忆数据结构所学过的知识,把握一个 顺序栈的大体运算实现,为下一步的实验奠定基础。二、实验要求:要求对一个顺序栈的大体运算作设计性实验,并上机运行,撰写实验报告。三、实验内容:一个顺序栈的数据类型表示和初始化、进栈、出栈大体运算。四、实验环境:Windows XP + VC+6. 0 开发环境。五、实验步骤:1、对顺序栈的知识进行温习,弄清楚栈的算法思想。2、熟悉顺序栈的几种大体运算,即:(1)初始化栈int initStack(sqstack *s)/*创建一个空栈由指针S指出*/if (s=(sqstack*)
2、malloc(sizeof(sqstack)=NULL) return FALSE; s->top= -1;return TRUE;)(2)入栈操作int push(sqstack *s, Elemtype x)/*将元素X插入到栈s中,作为s的新栈顶*/ if(s->top>=MAXNUM-l) return FALSE; /*栈满*/ s->top+;s->stacks->top=x;return TRUE;)(3)出栈操作Elemtype pop(sqstack *s)/*假设栈s不为空,那么删除栈顶元素*/Elemtype x;if(s->to
3、p<0) return NULL; /*栈空*/x=s->stacks->top.;s->top-;return x;)(4)取栈顶元素操作Elemtype gettop(sqstack *s)/*假设栈s不为空,那么返回栈顶元素*/if (s->top<0) return NULL; /*栈空*/return (s->stacks->top);)取栈顶元素与出栈不同的地方在于出栈操作改变栈顶指针top的位置,而取栈顶元素操 作不改变栈的栈顶指针.(5)判栈空操作int Empty(sqstack *s)/*栈s为空时,返回为TRUE;非空时,返
4、回为FALSE*/if(s->top<0) return TRUE;return FALSE;(6)置空操作void setEmpty(sqstack *s)/*将栈s的栈顶指针top,置为T*/s->top= -1;)3、上机调试。源代码如下:#include<stdio. h>#include<stdl ib.h>#define MAXNUM 30#define Elemtype int/*概念顺序栈的存储结构*/typedef structElemtype stackMAXNUM:int top;SqStack;/*初始化顺序栈*/void In
5、itStack (SqStack *p) if (!p) pr intf ("error'1);p->top=-1;)/*入栈*/void Push (SqStack *p, Elemtype x) if(p->top<MAXNUM-1) p->stack+p->top=x;else printf("Overflow!nH);)/*出栈*/Elemtype Pop(SqStack *p) Elemtype x;if (p->top!=0)x=p->stackp->top;pr intf ("栈顶元素%d 已经
6、被删除!n", p->stackp->top);p->top-;return (x);)elsepr i ntf ("Underflow!、);return (0);)/*获取栈顶元素*/Elemtype GetTop (SqStack *p) if(p->top!=0) return (p->stackp->top);else printf ("Underflow!nH);return (0) ; )/*遍历顺序栈*/void OutStack (SqStack *p) int i:printf (Hn");i f
7、(p->top<0) pr intf ("这是一个空栈! n");for (i=p->top; i>=0; i)pr intf ("第d 个数据是:%6dn". i, p->stacki);/*置空顺序栈*/ void setEmpty(SqStack *p) p->top=-1;/*主函数*/ma i n () SqStack *q;int y. cord;Elemtype a;do printf ("n第一次利用必需初始化! n");pr intf (MnM);pr intf (Mn* 主菜单*
8、 卜n”);pr intf ("n*1初始化顺序栈* 、n");pr intf ("n*2插入一个元素* Ji");pr intf ("n*3删除栈顶元素* (n");pr intf ("n*4取栈顶元素* 、n");pr intf (Mn*5置空顺序栈* n);pr intf ("npr intf ( n-*6终止程序运行* 、n");AnM);printf (”请输入您的选择(1, 2, 3, 4, 5, 6): “); scanf ("%d' &cord);pr
9、intf ("n");sw i tch (cord) case 1: q= (SqStack*)ma I Ioc(s i zeof(SqStack): InitStack(q);OutStack(q): break;case 2: pr intf (”请输入要插入的数据元素:a二”);scanf (飞d",&a);Push(q. a);OutStack (q); break;case 3: Pop(q);OutStack (q): break;case 4: y=GetTop(q);printf ("n 栈顶元素为:%dn". y);O
10、utStack (q); break;case 5: setEmpty(q);pr intf ("n顺序栈被置空! n");OutStack (q); break;case 6: ex i t (0);) v/h i I e (cord<=6);六、实验测试结果及分析:U、:Proeram FilesWicrosoTt Visual StudioWyProjec-.当第一场运行时需要初始化,即输入1,1 - rD: VPiogr FilesMicrosaf t Vxs-uaL StudioVlyProjectsbyylDebucVbyyl.日目口第二汨曳i必须初始化!
11、 )IMMNKMKMNMMMMMMMMMM 主系单.WX *XX X*X*X««X* 1初始化顺序栈-I* 2插入一个元素«I* 3期除犒顶元索xI* 4雌顶奇-I* S置空顺序栈-I* 6绪察程序运行kI OflMB SMI BMMB WOBM«MMIBMAMBflMBflBUMB BMB请稀入您的选择( 1 2. 3. 4. S, 6: 1Orf?®I进行初始化以后咱们就可正常对顺序栈运算了,*3<-3(-JO<-*:MOO( X-WWX X 主菜 单.* 1初始化顺序栈* 2插入一个元素* 3删除栈顶元素* 4取栈顶元素* 5
12、置空顺序栈* 6结束程序运行*请输入您的选择( 工,2, 3, 4, 5, 6)3Hl请输入要插入的数据元素:弟。个数据是;二2以此类推,咱们将能够测试出以下其它结果:第一次使用必须初始化!* 1初始化顺序栈* 2插入一个元素* 3删除栈顶元素* 4取栈顶元素* 5置空顺序栈* 6结束程序运行请输入您的选择(1,2, 3, 4, 5, &: 3饯顶元素3已经被删除?第0个数据是:2弟一次使用必须初始化! 再一次使用必须初始化!弁乂乂比比乂比主菜单* 1初始化顺序栈* 2插入一个元素* 3删除栈顶元素* 4取栈顶元素* 5置空顺序栈«* 6结束程序运行*通输入您的选择(L 2, 3, 4, 5, 6: 21输入要插入的数据元素=9是是是是 量据据 数数数数 个个个个 3 2 10咱们插入了多个元素,然后进行读取栈顶元素及置空,如此更明显些,请输入您的选择c( 2. 3. 4. 5. 6): 4度顶元素为;9>>>:>: S-S-S-S- 数数缸缸 个个个个 3 2 10请输入您的选择1, 2, 3. 4, 5, 6): 5顺序栈被置空!这是一个空
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中俄外贸合同样本
- 2025年广州市合同范本
- 冷物流运输合同标准文本
- 公司窗外保洁服务合同标准文本
- 幼儿园教育公平性的探索与实践计划
- 举升机租赁合同样本
- 农村工程维护合同样本
- 学校教学任务分配方案计划
- 农户马铃薯订单合同样本
- 兼职招商顾问合同样本
- HG-T 2643-2023 非金属化工设备 丙烯腈-丁二烯-苯乙烯、聚氯乙烯、均聚聚丙烯、聚偏氟乙烯和玻璃纤维增强聚丙烯隔膜阀
- 污水排入城镇污水管网排放口设置技术规范
- 医护人员职业倦怠与心理健康研究
- 宠物分期付款协议书
- 精密超精密加工
- 10月自考现代语言学(00830)试题及答案解析与评分标准
- 仓库搬运工安全操作培训课程
- 《怪老头儿》名著导读
- 外研社一年级起点英语-四年级上册各单元知识点
- 老年人的口腔知识讲座
- NB-T 47013.1-2015 承压设备无损检测 第1部分-通用要求
评论
0/150
提交评论