




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、 设计人员相关信息1. 设计者姓名、学号和班号:12地信李晓婧 120122429832. 设计日期:2014.3. 上机环境:VC+6.0二、 程序设计相关信息1. 实验题目:编写一个程序,实现顺序栈(假设栈中元素类型为char)的各种基本运算,并在此基础上设计一个程序,完成如下功能:(1) 初始化栈(2) 判断栈是否为空(3) 依次进栈元素a,b,c,d,e(4) 判断栈是否为空(5) 输出栈长度(6) 输出从栈顶到栈底元素(7) 输出出栈序列(8) 判断栈是否为空(9) 释放栈2. 实验项目组成:栈的初始化、销毁、判断是否为空、进栈、出栈、取栈顶元素。3. 实验项目的程序结构(程序中的函数调用关系图):MainInitStackDestroyStackStackEmptyPushPopGetPop4. 实验项目包含的各个文件中的函数的功能描述:(1) 初始化栈InitStack:建立一个新的空栈,实际上将栈顶指针指向-1即可。(2) 销毁栈DestroyStack:释放栈占用的存储空间(3) 判断栈是否为空StackEmpty:栈为空的条件是s-op=-1。(4) 进栈Push:在栈不满的条件下,先将栈顶指针增1,然后在栈顶指针指向位置插入元素e。(5) 出栈Pop:在栈不为空的条件下,先将栈顶元素赋给e,然后将栈顶指针减1.(6) 取栈顶元素GetTop:在栈不为空的条件下,将栈顶元素赋给e。5. 算法描述或流程图:#include stdio.h#include malloc.h#include#define MaxSize 50typedef char ElemType;typedef structElemType dataMaxSize;int top; /*栈顶指针*/SqStack; /定义顺序栈类型void InitStack(SqStack*&s)/*初始化*/s=(SqStack*)malloc(sizeof(SqStack);s-top=-1; /栈顶指针置为-1void DestroyStack(SqStack *&s)/*销毁*/free(s);int StackEmpty(SqStack*s)/*判断是否为空*/return(s-top=-1);int push(SqStack *&s,ElemType a,int n)int i;if(s-top=MaxSize-1) /栈满的情况,即栈上溢出return 0;for(i=0;itop+; /栈顶指针增1 s-datas-top=ai; /元素e放在栈顶指针处return 1;int Pop(SqStack*&s,ElemType &e)/*出栈一个元素*/if(s-top=-1) /栈为空的情况,即栈下溢出return 0;e=s-datas-top; /取栈顶元素s-top-; /栈顶指针减1return 1;int GetTop(SqStack *s,ElemType &e)/*取栈顶元素*/if(s-top=-1) /栈为空的情况,即栈下溢出return 0;e=s-datas-top; /取栈顶元素return 1;int StackLength(SqStack *s)/*求栈长度*/ return(s-top+1);void DispStack(SqStack *s)int i;for(i=s-top;i=0;i-)printf(%c,s-datai);printf(n);void main()int i,j; ElemType str5=a,b,c,d,e; /定义字符数组 SqStack *st; /定义栈 InitStack(st);/*初始化*/i=StackEmpty(st); /判断栈是否为空if(i=0)printf(顺序栈非空n);elseprintf(顺序栈为空n);push(st,str,5); /进栈j=StackEmpty(st);if(j=0)printf(顺序栈非空n);elseprintf(顺序栈为空n); printf(栈长度为:%dn,StackLength(st); /输出栈长度printf(出栈序列:n); DispStack(st); /输出栈StackEmpty(st);DestroyStack(st);6. 实验数据和实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 农发行九江市湖口县2025秋招笔试性格测试题专练及答案
- 2025年上海芭蕾舞团第二季度第一批招聘7人笔试备考题库及参考答案详解1套
- 云计算环境下数据备份方案
- 家电维修解决方案大揭秘
- 地产计划用地意见报告
- 药膳项目计划书
- 离婚抚养权协议范本:亲子互动与子女情感支持合同
- 精细化人力资源部劳动合同模板:岗位配置与绩效考核
- 硅PU篮球场施工与场地配套设施安装合同
- 写字楼租赁合同补充协议:租金上涨与物业管理优化
- 浴室工程施工组织设计方案
- 2024年秋九年级化学上册 第3单元 物质构成的奥秘 课题3 元素 第1课时 物质是由元素组成的说课稿 (新版)新人教版
- 微商基础培训课件
- ISO9001:2024版质量手册资料
- 2023-2024年社会工作者之初级社会综合能力考试题库
- 2025年慢性阻塞性肺疾病全球创议GOLD指南修订解读课件
- 民族宗教团日活动
- 新娘化妆相关知识考核试题及答案
- 食品生产监管能力大比武理论考试题及答案
- 二年级家长会课件下载
- 《PLC应用技术(西门子S7-1200)第二版》全套教学课件
评论
0/150
提交评论