- 7
- 0
- 约3.17千字
- 约 5页
- 2017-11-20 发布于北京
- 举报
严蔚敏版数据结构建立学生信息顺序栈C语言版
#include stdio.h#include malloc.h#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedefstruct Student/*定义学生类 */{intnum;char name[20];char sex[2];int age;float grade;}stu;typedefstruct{stu *base;stu *top;intstacksize;}sqstack;sqstackInitStack()/*构造一个空栈*/{sqstack s;s.base=(stu*)malloc(STACK_INIT_SIZE*sizeof(stu));if(!s.base)printf(OVERFLOW\n);else{s.top=s.base;s.stacksize=STACK_INIT_SIZE;printf(OK\n);return s;} } void DestroyStack(sqstack *s)/*销毁栈*/ {s-base=NULL;free(s-base);printf(OK\n);}void ClearStack(sqstack *s)/*将栈清空为空栈*/ {s-top=s-base;printf(OK\n);}void StackEmpty(sqstack *s)/*若为空栈返回TRUE,否则返回FLASE*/ {if(s-base==NULL)printf(栈不存在.\n);else if(s-top==s-base)printf(TRUE\n);elseprintf(FLASE\n);}intStackLength(sqstack *s){if(s-base==NULL)return(-1);elsereturn(s-top-s-base);}stuGetTop(sqstack *s)/*返回栈顶元素 */{if(s-top==s-base)printf(ERROR\n);else{printf(OK\n);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(OVERFLOW\n);else{s-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(ERROR\n);else{e=*(s-top-1); s-top=s-top-1;return e;}} void display(sqstack s)/*输出函数*/ {stu *p;p=s.base;printf(***************学生信息*****************\n);printf( 学号姓名性别年龄成绩\n);for(;ps.top;p++){printf(%d\t%s\t%s\t%d\t%f\n,p-num,p-name,p-sex,p-age,p-grade);}printf(****************************************\n);}void main(){sqstack s,*q;stu e;intn,i,j;q=s;s=InitStack();printf(请输入任意键进入菜单..........\n);getchar();for(;;){printf(**
您可能关注的文档
- 一篇文章让您读懂酒类顶层设计的最新改变.doc
- 一级公路平、纵、横需提交的设计成果.doc
- 一篇来自迷笛学校“迷笛先生”的毕业论文.docx
- 一直在痛着——读《爱与痛的边缘》.doc
- 一级建造师路基临界高度稠度等名词解释.doc
- 一纸墨笺红尘眷恋已惘然.doc
- 一般现在时和现在进行时的区别总结.doc
- 一般贸易出口货物退运.doc
- 一般贸易的方式与计算方法.doc
- 一般退运进口货物报关程序.doc
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
原创力文档

文档评论(0)