




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第3章 栈和队列,3.1 栈,3.2 队列,本章小结,栈是一种只能在一端进行插入或删除操作的线性表。表中允许进行插入、删除操作的一端称为栈顶。 栈顶的当前位置是动态的,栈顶的当前位置由一个称为栈顶指针的位置指示器指示。表的另一端称为栈底。 当栈中没有数据元素时,称为空栈。 栈的插入操作通常称为进栈或入栈,栈的删除操作通常称为退栈或出栈。,3.1.1 栈的定义,3.1 栈,栈的主要特点是“后进先出”,即后进栈的元素先出栈。栈也称为后进先出表。,思考题: 栈和线性表有什么不同?,例3.1 设有4个元素a、b、c、d进栈,给出它们所有可能的出栈次序。,解:所有可能的出栈次序如下: abcd abdc
2、 acbd acdb adcb bacd badc bcad bcda bdca cbad cbda cdba dcba,例3.2 设一个栈的输入序列为A,B,C,D,则借助一个栈所得到的输出序列不可能是 。 (A) A,B,C,D(B) D,C,B,A (C) A,C,D,B(D) D,A,B,C,解:可以简单地推算,得容易得出D,A,B,C是不可能的,因为D先出来,说明A,B,C,D均在栈中,按照入栈顺序,在栈中顺序应为D,C,B,A,出栈的顺序只能是D,C,B,A。所以本题答案为D。,例3.3 已知一个栈的进栈序列是1,2,3,n,其输出序列是p1,p2,pn,若p1=n,则pi的值 。
3、 (A) i (B) n-i (C) n-i+1 (D) 不确定,解:当p1=n时,输出序列必是n,n-1,3,2,1,则有: p2=n-1, p3=n-2, , pn=1 推导出pi=n-i+1,所以本题答案为C。,例3.4 设n个元素进栈序列是1,2,3,n,其输出序列是p1,p2,pn,若p1=3,则p2的值 。 (A) 一定是2(B) 一定是1 (C) 不可能是1 (D) 以上都不对,解:当p1=3时,说明1,2,3先进栈,立即出栈3,然后可能出栈,即为2,也可能4或后面的元素进栈,再出栈。因此,p2可能是2,也可能是4,n,但一定不能是1。所以本题答案为C。,栈的几种基本运算如下:,
4、InitStack( ,(4)进栈Push( ElemType e; SqStack *st; InitStack(st);/初始化栈 for (i=0;stri!=0;i+)/将串所有元素进栈 Push(st,stri);/元素进栈 for (i=0;stri!=0;i+) Pop(st,e); /退栈元素e if (stri!=e) /若e与当前串元素不同则不是对称串 DestroyStack(st);/销毁栈 return false; DestroyStack(st); /销毁栈 return true; ,3.1.3 栈的链式存储结构及其基本运算的实现,采用链式存储的栈称为链栈,这里
5、采用单链表实现。 链栈的优点是不存在栈满上溢的情况。这里规定栈的所有操作都是在单链表的表头进行的,用带头节点的单链表表示链栈,第一个数据节点是栈顶节点,最后一个节点是栈底节点。 栈中元素自栈顶到栈底依次是a1、a2、an。,链栈示意图,链栈的4要素:,栈空条件:s-next=NULL 栈满条件:不考虑 进栈e操作:将包含e的节点插入到头节点之后 退栈操作:取出头节点之后节点的元素并删除之,链栈中数据节点的类型LiStack定义如下:,typedef struct linknode ElemType data;/数据域 struct linknode *next;/指针域 LiStack;,在链栈中,栈的基本运算算法如下。 (1)初始化栈initStack( ,(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 甘肃靖远县高三数学试卷
- 高校联盟数学试卷
- 方城县中学二模数学试卷
- 关于千克方面的数学试卷
- 2025年甘肃中医药大学招聘41人笔试历年专业考点(难、易错点)附带答案详解
- 2025至2030船体清洁机器人行业市场深度调研及前景趋势与投资报告
- 赣州高考二模数学试卷
- 二年级毕业题数学试卷
- 高一集合数学试卷
- 体育赛事官方艺术家合作项目的社区参与度分析考核试卷
- GB/T 6075.3-2011机械振动在非旋转部件上测量评价机器的振动第3部分:额定功率大于15 kW额定转速在120 r/min至15 000 r/min之间的在现场测量的工业机器
- GB/T 5594.4-2015电子元器件结构陶瓷材料性能测试方法第4部分:介电常数和介质损耗角正切值测试方法
- GB/T 15558.1-2015燃气用埋地聚乙烯(PE)管道系统第1部分:管材
- GB/T 11060.8-2020天然气含硫化合物的测定第8部分:用紫外荧光光度法测定总硫含量
- 国开专科《外国文学》十年期末考试题库及答案
- 浙江义务教育学校校园饮水质量提升工程建设和维护浙江教育厅
- 林州重机710采煤机电控箱装配流程
- 个人求职简历两页 (46)应聘履历参考模板可编辑修改
- JJF 1847-2020 电子天平校准规范(高清版)
- 统编版小学语二升三衔接阅读专项训练—课外阅读(二)【含答案】
- 积分会员管理系统excel表格模板
评论
0/150
提交评论