- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章 栈和队列
重点
栈和队列的抽象数据类型的定义
栈和队列的基本操作算法和复杂性分析
栈的递归实现原理、递归算法执行过程中栈的变化状态
利用栈编写递归程序
栈和队列的区别
递归算法和非递归算法的转换过程
学习应用栈和队列中的基本操作解决实际问题
第三章 栈和队列
难点
栈和队列的基本操作算法和复杂性
栈的递归实现原理、递归算法执行过程中栈的变化状态
利用栈编写递归程序
递归算法和非递归算法的转换过程
应用栈和队列中的基本操作解决实际问题
第三章 栈和队列
学习要点
理解栈的逻辑结构定义及特点
掌握栈的顺序存储结构的描述
重点掌握顺序栈上的基本运算
掌握栈的链式存储结构
掌握描述链栈结构的方法
掌握链栈上的基本运算
了解栈的广泛应用
理解队列的逻辑结构定义及特点
掌握顺序队列存储结构及其描述方法
掌握顺序队列上的基本运算
第三章 栈和队列
理解栈和队列中“上溢”和“下溢”的概念
理解顺序队列出现“假上溢”的原因及其解决方案
掌握循环顺序队列的结构
重点掌握循环队列的基本运算
理解循环顺序队列消除“假上溢”的方法理解队列“满”和“空”的含义
掌握顺序队列和循环队列判断“满”和“空”的条件
掌握队列的链式存储结构及其描述方法
掌握队列的链队列的基本运算
了解队列的广泛应用
第三章 栈和队列
通常称栈和队列是限定插入和删除只能在表的“端点”进行的线性表
线性表 栈 队列
Insert(L, i,x) Insert(S, n+1,x) Insert(Q,n+1,x)
1≤i≤n+1
Delete(L, i) Delete(S, n) Delete(Q, 1)
1≤i≤n
栈和队列是两种常用的数据类型
3.1 栈
抽象数据类型栈的定义
栈(stack)是限定在表尾一端进行插入或删除操作的线性表。在栈中,允许插入和删除操作的一端称为栈顶(top),而另一端称为栈底(base)。不含元素的栈称为空栈
在栈的运算中,栈的插入操作称为进栈或入栈,栈的删除操作称为退栈或出栈。根据栈的定义,每一次进栈的元素都在原栈顶元素之上,并成为新的栈顶元素;每一次出栈的元素总是当前的栈顶元素,因此最后进栈的元素总是最先出栈,所以栈也称为后进先出(Last In First Out)线性表,简称为LIFO表。或先进后出FILO表, ( First In Last Out)
3.1 栈
ADT Stack {
数据对象:
D={ ai | ai ∈ElemSet, i=1,2,...,n, n≥0 }
数据关系:
R1={ ai-1, ai | ai-1, ai∈D, i=2,...,n }
约定an 端为栈顶,a1 端为栈底
基本操作:
} ADT Stack
3.1 栈
基本操作
InitStack(S) 操作结果:构造一个空栈 S。
DestroyStack(S) 初始条件:栈 S 已存在。 操作结果:栈 S 被销毁。
StackEmpty(S) 初始条件:栈 S 已存在。 操作结果:若栈 S 为空栈,则返回 TRUE,否则 FALSE
StackLength(S) 初始条件:栈 S 已存在。 操作结果:返回 S 的元素个数,即栈的长度
3.1 栈
GetTop(S, e) 初始条件:栈 S 已存在且非空。 操作结果:用 e 返回 S 的栈顶元素。
a1
a2
an
… …
ClearStack(S) 初始条件:栈 S 已存在。 操作结果:将 S 清为空栈
3.1 栈
Push(S, e) 初始条件:栈 S 已存在。 操作结果:插入元素 e 为新的栈顶元素。
e
3.1 栈
Pop(S, e) 初始条件:栈 S 已存在且非空。 操作结果:删除 S 的栈顶元素,并用 e 返回其值
3.1 栈
StackTravers(S, visit( )) 初始条件:栈 S 已存在且非空。 操作结果:从栈底到栈顶依次对栈S的每个元素调用函数visit( )。一旦visit( )失败,则操作失败
3.1 栈
栈的表示和实现
顺序栈
类似于线性表的顺序映象实现,指向表尾的指针top可以作为栈顶指针
//----- 栈的顺序存储表示 -----
#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
t
您可能关注的文档
最近下载
- 第15章量子物理-效应.pptx VIP
- 精品解析:浙江省杭州市余杭区2024-2025学年八年级10月月考语文试题(原卷版).docx VIP
- 镧热还原法年产35吨稀土金属钐的工艺设计.docx VIP
- 镧热还原法年产25吨稀土金属钐的工艺设计.docx VIP
- 2024年江西省南昌市保安员上岗资格证考试题库及答案(真题) .pdf VIP
- 2025年北师大版一年级数学上册月考试卷含答案.doc VIP
- 劳动教案(全册)五年级上册——人民出版社(表格式).pdf VIP
- 2025年部编版七年级 语文(上下全册)字词拼音及解释 .pdf VIP
- 安全标识中英文可直接打印.doc VIP
- 退役士兵驾驶技能培训服务投标方案(技术标).pdf VIP
文档评论(0)