下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include#include#defineOK0#defineERROR1intMAX_SIZE=20;/顺序栈的表示方法typedefstructint*pData;/top=-1表示栈为空,top范围-1MAX_SIZEinttop;top=MAX_SIZE-1表示栈满SeqStack;SeqStack*InitList(SeqStack*L)if(NULL=L)L=(SeqStack*)malloc(sizeof(SeqStack);/为L开辟空间if(!L)printf(初始化失败!n);/开辟失败输出的提示returnNULL;L-pData=(int*)malloc(MAX_S
2、IZE*sizeof(int);/为栈开辟空间if(!L-pData)free(L);/如果开辟失败释放L的空间printf(初始化失败!n);returnNULL;L-top=-1;/栈为空returnL;/顺序栈的销毁intDestroyList(SeqStack*L)if(L-pData)free(L-pData);L-pData=NULL;/释放栈的空间L-top=-1;return1;/栈置空/获取栈顶元素intGetTop(SeqStack*L)if(-1=L-top)printf(栈已空!n);/如果L-pData等于-1则栈是空的exit(1);returnL-pDataL-t
3、op;/返回栈顶元素/出栈操作intPop(SeqStack*L)if(-1=L-top)printf(”栈已空!n);/如果L-pData等于-1则栈是空的exit(1);returnL-pDataL-top-;/返回栈顶元素,栈顶减1/入栈操作intPush(SeqStack*L,intx)if(!L-pData|L-top=MAX_SIZE-1)printf(顺序栈不存在或是栈已满,不能插入!);/如果栈顶等于栈元素最大个数,则栈已满returnERROR;L-top+;/栈顶加1*(L-pData+L-top)=x;/要入栈的元素放入栈顶returnOK;/输出某个数据voidPrin
4、tDataType(intx)printf(%d,x);/输出传过来的元素printf(n);/输出顺序栈中的每个元素voidPrintList(SeqStack*L)intk=0;if(!L-pData)printf(顺序栈不存在!n);/如果L-pData为0,则栈不存在return;if(-1=L-top)printf(顺序栈是空的!n);/如果栈顶为-1,则栈为空return;printf(栈中的元素有:n);for(k=0;ktop;k+)PrintDataType(L-pDatak);/调用PrintDataType()函数,输出栈中的的值/置空栈intSetEmpty(SeqSt
5、ack*L)if(!L-pData)returnERROR;L-top=-1;/站定赋值-1,栈置空returnOK;/求栈中元素个数intGetCnt(SeqStack*L)if(L-pData)returnL-top+1;return-1;/顺序栈没有分配内存时,返回-1/判断是否为空:1为空,0为非空intlsEmpty(SeqStack*L)if(!L-pData)printf(顺序栈不存在!n);return-1=L-top;/判断是否为满:1为满,0为不满intlsFull(SeqStack*L)if(!L-pData)printf(顺序栈不存在!n);returnMAX_SIZE
6、=L-top+1;voidmain()SeqStack*L=NULL;L=InitList(L);/初始化顺序栈PrintList(L);/打印顺序栈printf(插入三个元素后);Push(L,10);/把元素10入栈Push(L,12);/把元素12入栈Push(L,14);/把元素14入栈PrintList(L);/打印顺序栈printf(栈顶元素为:);PrintDataType(GetTop(L);printf(岀栈元素为:);PrintDataType(Pop(L);PrintList(L);/打印顺序栈printf(栈顶元素为:);PrintDataType(GetTop(L);if(lsEmpty(L)printf(顺序栈是空的n);elseprintf(顺序栈是非空的n);printf(置空栈后);SetEmpty(L);/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 饲料加工中控工改进竞赛考核试卷含答案
- 2026莆田家居品牌市场竞争态势演变趋势分析与投资布局深度规划深度研究报告
- 中学视听阅览室建设标准
- 2026中国渔业市场现状产品分析及投资评估规划分析研究报告
- 2026汽车后市场服务业务分析及连锁经营与数字化管理全流程建设方案
- 2026中国物流自动化技术应用前景与投资回报分析报告
- 2026中国智能吸尘器行业市场现状供需分析及投资评估规划分析研究报告
- 2026欧洲智能农业服务行业市场现状供需分析及投资评估规划分析研究报告
- 【班主任】【带班育人】故事分享:不用急老师等你
- 2026中国新能源金融行业创新模式与投资机遇报告
- 义务教育(音乐)课程标准(2022年版)解读
- 急诊与接诊制度
- 医院食源性疾病培训课件
- 颈椎病的康复上传版课件
- DL∕T 593-2016 高压开关设备和控制设备标准的共用技术要求
- 人教版高一下学期期末考试数学试题与答案解析(共五套)
- 2022青鸟消防气体灭火控制器JBF5016使用说明书
- 成人护理学绪论课件
- 义齿行业生产经营成本分析
- 2024年《药物临床试验质量管理规范》(GCP)网络培训题库
- 内镜室半年工作总结
评论
0/150
提交评论