全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include #define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef struct Student/*定义学生类 */int num;char name20;char sex2;int age;float grade;stu;typedef structstu *base;stu *top;int stacksize;sqstack;sqstack InitStack()/*构造一个空栈*/sqstack s;s.base=(stu*)malloc(STACK_INIT_SIZE*sizeof(stu);if(!s.base)printf(OVERFLOWn);elses.top=s.base;s.stacksize=STACK_INIT_SIZE;printf(OKn);return s; void DestroyStack(sqstack *s)/*销毁栈*/ s-base=NULL;free(s-base);printf(OKn);void ClearStack(sqstack *s)/*将栈清空为空栈*/ s-top=s-base;printf(OKn);void StackEmpty(sqstack *s)/*若为空栈返回TRUE,否则返回FLASE*/ if(s-base=NULL)printf(栈不存在.n);else if(s-top=s-base)printf(TRUEn);elseprintf(FLASEn);int StackLength(sqstack *s)if(s-base=NULL)return(-1);elsereturn(s-top-s-base);stu GetTop(sqstack *s)/*返回栈顶元素 */if(s-top=s-base)printf(ERRORn);elseprintf(OKn);return *(s-top-1); void Push(sqstack *s)/*插入新元素*/ stu *newbase; if(s-top-s-base=s-stacksize)newbase=(stu*)realloc(s-base,(s-stacksize+STACKINCREMENT)*sizeof(stu);if(!newbase)printf(OVERFLOWn);elses-top=s-base+s-stacksize;s-stacksize=s-stacksize+STACKINCREMENT;printf(请输入插入学生的数据n学号:);scanf(%d,&s-top-num); printf(姓名:);scanf(%s,&s-top-name);printf(年龄:);scanf(%d,&s-top-age);printf(性别:);scanf(%s,&s-top-sex);printf(成绩:);scanf(%f,&s-top-grade);s-top+;else printf(请输入插入学生的数据n学号:);scanf(%d,&s-top-num); printf(姓名:);scanf(%s,&s-top-name);printf(年龄:);scanf(%d,&s-top-age);printf(性别:);scanf(%s,&s-top-sex);printf(成绩:);scanf(%f,&s-top-grade);s-top+;stu Pop(sqstack *s)/*删除栈顶元素,返回其值*/stu e;if(s-top=s-base)printf(ERRORn);elsee=*(s-top-1); s-top=s-top-1;return e; void display(sqstack s)/*输出函数*/ stu *p;p=s.base;printf(*学生信息*n);printf( 学号 姓名 性别 年龄 成绩n);for(;pnum,p-name,p-sex,p-age,p-grade);printf(*n);void main()sqstack s,*q;stu e;int n,i,j;q=&s;s=InitStack();printf(请输入任意键进入菜单.n);getchar();for(;)printf(*菜单*n);printf(1.建了一个空栈n);printf(2.构建一个有关学生信息的栈n);printf(3.销毁栈n);printf(4.将栈清为空栈n);printf(5.若栈为空栈返回TRUE,否则返回FLASEn);printf(6.返回栈长度n);printf(7.返回栈顶元素n);printf(8.插入新元素n);printf(9.删除栈顶元素,返回其值n);printf(0.停止n);printf(*n); printf( 请输入你的选择(09):n); scanf(%d,&n); switch(n) case 1:s=InitStack();printf(现在输出空栈n);display(s);q=&s;break;case 2:printf(请输入学生个数:n);scanf(%d,&i);for(j=0;ji;j+)Push(q);printf(现在输出建立的学生信息栈n);display(*q);break;case 3:DestroyStack(q);break;case 4:ClearStack(q);break;case 5:StackEmpty(q);break;case 6:printf(栈的长度为:%dn,StackLength(q);break; case 7:e=GetTop(q);printf(栈顶元素为:n学号:%dn姓名:%sn性别:%sn年龄:%dn成绩:%fn,e.num,,e.sex,e.age,e.grade);break;case 8:Push(q);printf(插入后的学生信息:n);display(*q);break;case 9:e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 河南省三门峡市2026届化学高三上期末调研试题含解析
- 2026届上海市静安区市级名校化学高一第一学期期中联考模拟试题含解析
- 第四课 职业道德是职业成功的必要保证教学设计-2025-2026学年中职基础课-职业道德与法律(第3版)-人教版-(政治(道法))-59
- Module 5Unit 2 Reading and vocabulary 教学设计2023-2024学年外研版英语八年级上册
- 任务二 蝴蝶翅膀动起来教学设计-2023-2024学年小学信息技术(信息科技)六年级下册桂科版
- 11.2.1三角形的内角(第一课时)教学设计2024-2025学年人教版八年级上册
- 小学数学人教版(2024)五年级上册小数乘小数教学设计
- 中国螺纹式气动蝶阀行业市场前景预测及投资价值评估分析报告
- 四、认识计算机教学设计-2025-2026学年初中信息技术(信息科技)七年级上册沪科版
- DB3211∕T 1099-2024 多年生异担子菌检验技术规程
- DB32∕T 5081-2025 建筑防水工程技术规程
- 27中成药陈列注意事项
- 基于超深亚微米工艺的E
- 返工返修流程及作业指导书
- GB/T 16857.12-2022产品几何技术规范(GPS)坐标测量系统(CMS)的验收检测和复检检测第12部分:关节臂式坐标测量机
- FZ/T 81013-2016宠物狗服装
- 肉鸡加工流程介绍课件
- 超声(波)检测的原理教学内容课件
- 手术医疗意外险项目介绍课件
- 《中国手语》课程标准
- 不良品处理流程图
评论
0/150
提交评论