DS03栈和队列.ppt

  1. 1、本文档共93页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DS03栈和队列课案

第三章 栈和队列 栈------基本概念 栈(Stack)是一种特殊的线性表,其插入和删除操作均在表的一端进行,是一种运算受限的线性表。 允许插入和删除的一端,即变化的一端,称为栈顶,另一端称为栈底,不含元素的栈称为空栈。 栈------基本概念 插入元素时,称为入栈,先进栈的放在栈的底部,后进栈的在栈的顶部;删除元素称为出栈,出栈时,最后进栈的最先被删除,最先进栈的最后出栈,故栈又被称为后进先出(LIFO)线性表。 栈------示意图 栈------举例 1.设栈的输入序列是1,2,3,4,则( )不可能是其出栈序列。 A) 1,2,4,3, B) 2,1,3,4, C) 1,4,3,2, D) 4,3,1,2, 栈------举例 2.设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是( )。 A)5 1 2 3 4 B)4 5 1 3 2 C)4 3 1 2 5 D)3 2 1 5 4 栈-----实现 栈的顺序存储结构——顺序栈 栈的链式存储结构——链栈 顺序栈----构造思想 使用一组连续的存储单元依次存放自栈底到栈顶的数据元素。 通常使用一维数组实现栈的顺序存储,习惯上以数组小下标一端作为栈底。 同时设置一个栈顶指针top指向栈顶元素,随着插入删除而变化。 top=-1时为空栈。 顺序栈----类型定义 typedef struct{ ElemType elem[MAXSIZE]; int top; //栈顶指针 }SeqStack; 顺序栈----基本操作 栈的初始化 Init_SeqStack 判断栈空 Empty_SeqStack 入栈操作 Push_SeqStack 出栈操作 Pop_SeqStack 取栈顶元素 Top_SeqStack 栈的初始化 Init_SeqStack 判断栈空 Empty_SeqStack int Empty_SeqStack(SeqStack *s) { if (s-top==-1) return TRUE; else return ERROR; } 入栈操作 Push_SeqStack 出栈操作 Pop_SeqStack 取栈顶元素 Top_SeqStack ElemType Top_SeqStack(SqStack *s) { if (Empty_SeqStack(s)) return OVERFLOW; else return (s-elem[s-top]); } 顺序栈的几点说明: 1.对于顺序栈,入栈时,首先判断栈是否满,栈满的条件:s-top==MAXSIZE-1。栈满时,不能入栈,否则空间溢出,产生错误,称为上溢。 2.出栈和读取栈顶元素时,要首先判断栈是否为空,为空时产生错误,称为下溢。 顺序栈的几点说明: 3.两个栈共享一个向量空间,减少产生上溢的概率。 练 习 1. 对于栈操作数据的原则是( )。 A. 先进先出 B. 后进先出 C. 后进后出 D. 不分顺序 2. 在作进栈运算时,应先判别栈是否( ① ),在作退栈运算时应先判别栈是否( ② )。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为( ③ )。 ①, ②: A.空 B.满 C.上溢 D.下溢 ③: A.n-1 B.n C.n D. n/2 练 习 3. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1=i=n)个元素是( )。 A. 不确定 B. n-i+1 C. i D. n-i 4. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是( )。 A. 5 1 2 3 4 B. 4 5 1 3 2 C. 4 3 1 2 5 D. 3 2 1 5 4 练 习 5. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?( ) A. 5 4 3 6 1 2 B. 4 5 3 1 2 6 C. 3 4 6 5 2 1 D. 2 3 4 1 5 6 6. 输入序列为A

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档