版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、#include#include#define ok 0#define error 1int max_size = 20;/ 顺序栈的表示方法typedef struct int* pdata;/ top=-1表示栈为空, top范围-1max_sizeint top; /top=max_size-1表示栈满seqstack;seqstack* initlist(seqstack* l)if (null=l)l=(seqstack*)malloc(sizeof(seqstack);/为l开辟空间if (!l)printf(初始化失败!n);/开辟失败输出的提示return null;l-pda
2、ta=(int*)malloc(max_size*sizeof(int);/为栈开辟空间if(!l-pdata)free(l);/如果开辟失败释放l的空间printf(初始化失败!n);return null;l-top=-1;/栈为空return l;/ 顺序栈的销毁int destroylist(seqstack* l)if(l-pdata)free(l-pdata);/释放栈的空间l-pdata=null;l-top=-1;/栈置空return 1;/ 获取栈顶元素int gettop(seqstack* l)if(-1=l-top)printf(栈已空!n);/如果l-pdata等于-
3、1则栈是空的exit(1);return l-pdatal-top;/返回栈顶元素/ 出栈操作int pop(seqstack* l)if(-1=l-top)printf(栈已空!n);/如果l-pdata等于-1则栈是空的exit(1);return l-pdatal-top-;/返回栈顶元素,栈顶减1 / 入栈操作int push(seqstack *l, int x)if(!l-pdata | l-top=max_size-1)printf(顺序栈不存在或是栈已满, 不能插入!);/如果栈顶等于栈元素最大个数,则栈已满return error;l-top+;/栈顶加1*(l-pdata+
4、l-top)=x;/要入栈的元素放入栈顶return ok;/ 输出某个数据void printdatatype(int x) printf(%d, x);/输出传过来的元素printf(n);/ 输出顺序栈中的每个元素void printlist(seqstack* l)int k=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-
5、pdatak);/调用printdatatype()函数,输出栈中的的值/ 置空栈int setempty(seqstack* l)if(!l-pdata)return error;l-top=-1;/站定赋值-1,栈置空return ok;/ 求栈中元素个数int getcnt(seqstack* l)if(l-pdata)return l-top+1;return -1; / 顺序栈没有分配内存时, 返回-1/ 判断是否为空: 1为空, 0为非空int isempty(seqstack* l)if(!l-pdata)printf(顺序栈不存在!n);return -1=l-top;/ 判断
6、是否为满: 1为满, 0为不满int isfull(seqstack* l)if(!l-pdata)printf(顺序栈不存在!n);return max_size=l-top+1;void main()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(isempty(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年残疾人服务机构基孔肯雅热考核试题含答案
- 2025年特殊教育教师试题及答案
- 地下室侧墙施工方案
- 2026年自考设计概论专项试题及答案
- 管道试压施工方案
- 2026年港口法知识竞赛题库及答案
- 2025年四川省攀枝花市检察院书记员考试试题及答案
- 第13章 遗嘱继承课件
- 海洋生态的挽救行动-共建蓝色星球复兴海洋生态
- 2025年山东省中考道德与法治试卷真题(含答案)
- DB5309∕T 83-2025 临沧市暴雨强度公式
- 水利工程设计机构岗位职责与组织框架
- 新生儿肝脾大诊疗与管理
- PLC自动化立体仓库仿真系统设计
- 碎石场安全协议书
- 煤矿机电运输培训课件
- 国家职业标准 4-07-03-02 劳动关系协调师 (2025年版)
- 2025-2030中国担保行业市场深度调研及竞争格局与投资前景研究报告
- 2025年河南省中招理化生实验操作考试ABCD考场评分表
- 国家科技计划课题结题财务验收审计专项培训
评论
0/150
提交评论