全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 上海震旦职业学院《小学课堂管理艺术》2024-2025学年第一学期期末试卷
- 福建省福州市鼓楼区2025年高二上数学期末监测试题含解析
- 口腔科牙周炎治疗方案制定
- 华中农业大学《嵌入式系统导论》2024-2025学年第一学期期末试卷
- 河北软件职业技术学院《社会医疗保险学》2024-2025学年第一学期期末试卷
- 儿科腹痛急救处理流程
- 急诊科心源性休克护理手册
- 消化内科胃食管反流预防措施
- 溶血性贫血诊疗流程指南
- 精神科护理的基本技能课件
- DB32∕T 5081-2025 建筑防水工程技术规程
- 2025年合肥文旅博览集团招聘笔试参考题库含答案解析
- 山东省烟台市2024-2025学年高二上学期期中考试政治试题 含解析
- 婴幼儿托育服务与管理大学职业生涯规划
- FZ/T 81013-2016宠物狗服装
- 梁场设计布置与施工全解课件
- 肉鸡加工流程介绍课件
- 超声(波)检测的原理教学内容课件
- 手术医疗意外险项目介绍课件
- 《中国手语》课程标准
- 不良品处理流程图
评论
0/150
提交评论