版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2016数据结构Data structure讲授:司蕾3.3链栈及其操作常州信息职业技术学院02三、链表的插入03链栈-描述3.3 若栈中元素的数目变化范围较大或不清楚栈元素的数目,就应该考虑使用链式存储结构来表示栈。 1、链栈(Linked Stack) 栈的链式存储结构称为链栈,它是运算受限的单链表,其插入和删除操作仅限制在表头位置上进行,栈顶指针就是链表的头指针top a4 a3 a1 a2图3-2 链栈示意图04链栈-描述3.3top向栈中顺序插入(入栈) A、B、C、D04链栈-描述3.3top向栈中顺序插入(入栈) A、B、C、DA04链栈-描述3.3topB向栈中顺序插入(入栈)
2、 A、B、C、DA04链栈-描述3.3topB向栈中顺序插入(入栈) A、B、C、DAC04链栈-描述3.3topB向栈中顺序插入(入栈) A、B、C、DACD04链栈-描述3.3topB向栈中顺序插入(入栈) A、B、C、DACD从栈中顺序删除(退栈) D、C、B、A04链栈-描述3.3topB向栈中顺序插入(入栈) A、B、C、DAC从栈中顺序删除(退栈) D、C、B、A04链栈-描述3.3topB向栈中顺序插入(入栈) A、B、C、DA从栈中顺序删除(退栈) D、C、B、A04链栈-描述3.3top向栈中顺序插入(入栈) A、B、C、DA从栈中顺序删除(退栈) D、C、B、A04链栈-描
3、述3.3top向栈中顺序插入(入栈) A、B、C、D从栈中顺序删除(退栈) D、C、B、A04链栈-描述3.3向栈中顺序插入(入栈) A、B、C、D从栈中顺序删除(退栈) D、C、B、A插入、删除只在链表的一端进行topBACD03链栈-描述3.32、链栈的描述typedef struct/栈的描述 StackNode *top; /栈顶指针LinkStack; typedef char DataType;/假定栈元素的类型为字符类型typedef struct stacknode/结点的描述 DataType data; struct stacknode *next;StackNode;06
4、链栈-描述3.33、说明:(1)设S是LinkStack类型的指针变量,则S是指向链栈的指针,链栈栈顶指针可表示为S- top;链栈栈顶元素可表示为S- top -data。(2)设p是StackNode类型的指针变量,则p是指向链栈某结点的指针,该结点的数据域可表示为p -data,该结点的指针域可表示为p - next。(3)条件S-top= NULL表示空栈,链栈没有栈满的情况。三、链表的插入07链栈的操作-进栈3.31、进栈2、算法思路: 生成一个新结点,将x写入数据域,再将新结点插入栈的顶部。StackNode *p=(StackNode *)malloc(sizeof(StackN
5、ode);p-data=x;p-next=S-top;S-top=p; topBAxptop083、具体算法:int Push(LinkStack *S,DataType x)/进栈StackNode *p=(StackNode *)malloc(sizeof(StackNode);if(p=NULL) puts (内存申请不成功!);return 0; p-data=x;p-next=S-top;/将新结点*p插入链栈头部S-top=p; /栈顶指针指向新结点return 1;将栈S和进栈元素x作为参数。将值为x的结点插入栈顶,进栈操作成功时,返回1,否则返回0。链栈的操作-进栈3.309链
6、栈的操作-退栈3.31、退栈2、算法思路:当栈空时,提示“栈空”,返回0当栈不空时,先将栈顶元素的值存入指针p指向的变量,再将栈顶结点删除。 判断栈S是否栈空topBACStackNode *p=S-top;*x=p-data; S-top=p-next; free(p);ptop091、退栈2、算法思路:当栈空时,提示“栈空”,返回0当栈不空时,先将栈顶元素的值存入指针p指向的变量,再将栈顶结点删除。 判断栈S是否栈空BAStackNode *p=S-top;*x=p-data; S-top=p-next; free(p);top链栈的操作-退栈3.3三、链表的插入103、具体算法:int Pop(LinkStack *S, DataType *x)/退栈StackNode *p=S-top;/保存栈顶指针if(StackEmpty(S)puts(栈空); return 0;*x=p-data; /保存栈顶结点数据S-top=p-next; /将栈顶结点从链上摘下free(p);return 1; 可将栈S和指针x作为参数。保存栈顶结点的数据,移除栈顶结点。退栈操作成功时,返回1,否则返回0。链栈的操作-退栈3.311链栈的操作-取栈顶元素3.31、取栈顶元素2、具体算法: 保存栈顶结点的数据。操作成功时,返回1,否则返回0。可将栈S和指针x作为参数。int StackT
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度年福建省高校教师资格证之高等教育法规提升训练试卷B卷附答案
- 2023年重铬酸钠资金筹措计划书
- 中级经济师(运输经济)《专业知识与实务》考前冲刺必会试题及答案
- 三年级数学(上)计算题专项练习附答案集锦
- 办公用品质量保证书
- 2024年公司迁移服务协议模板
- 村会议决议模板5篇
- 2024详细土建工程承揽协议模板
- 2024年事业单位正式协议样式
- 岗位聘任职责与权益详解协议样本
- 公务员2021年国考《申论》真题(地市级)及参考答案
- 新教科版小学1-6年级科学需做实验目录
- 岗位梳理与“三定”工作实施方案
- 各种型钢理论截面积、理论表面积、理论重量对照表
- 石油化工英语词汇
- 部门服务满意度评分表
- 慢支慢性阻塞性肺疾病9版.ppt
- 细纱机设备维护维修说明书
- 地方课程六年级上册
- (完整版)PD、QC有限快充的知识讲解
- 浅论构建高效课堂研究的意义
评论
0/150
提交评论