数据结构第三章栈和队列课件..pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构第三章栈和队列课件.

第三章 栈和队列 教学目的 通过本章的学习,要求掌握栈和队列的定义,熟练掌握顺序和链接存储的栈和队列的算法设计及其程序实现,了解栈和队的各种应用。 本章主要介绍以下内容: 栈的概念、存储结构及其基本操作 队列的概念、存储结构及其基本操作 栈与队列的应用举例 重点:栈和队列的定义、特征;顺序栈、链栈的描述及基本操作实现算法;循环队列和链队列的基本操作实现算法。 难点:栈满、栈空的条件及描述方法;队满和队空的描述方法;循环队列上的插入、删除操作。 栈(stack) 栈的定义 栈的类型定义 栈的存储方式 栈的定义 栈是一种特殊的线性表。其特殊性在于限定插入和删除数据元素的操作只能在线性表的一端进行。 假设栈S=(a1,a2,a3,…an),则a1称为栈底元素,an为栈顶元素。栈中元素按a1,a2,a3,…an的次序进栈,退栈的第一个元素应为栈顶元素。 换句话说,栈的修改是按后进先出的原则进行的。 因此,栈称为后进先出表(LIFO)Last In First Out。 栈的类型定义 ADT Stack { 数据对象:D={ai| ai ?ElemSet i=1,2,..,n n≥0} 数据关系:R1={ ai,ai+1| ai,ai+1?ElemSet, i=1,2,..,n-1≥0 } {约定an端为栈顶,a1端为栈底} 基本操作: {结构初始化} InitStack(S) 操作结果:构造一个空栈S {销毁结构} DetroyStack (S) 初始条件:栈S已经存在 操作结果:销毁栈S {引用型操作} StackEmpty(S) //判断S是否为空栈,若为空返回True,否则返回False StackLength(S) //得到栈S的元素个数,即栈的长度 GetTop(S,e) //得到S的栈顶元素,并将之放入变量e中 StackTraverse(S,visit()) //从栈底到栈顶遍历栈S,对每个元素调用visit() {加工型操作} ClearStack(S) //清空栈S Push(S,e) //向栈中插入元素e为新的栈顶元素 Pop(S,e) //删除栈S的栈顶元素,并用e返回值 栈的存储方法 栈有两种存储表示方法:顺序存储和链式存储 由于栈是运算受限的线性表,因此线性表的存储结构对栈也适应。 栈的顺序存储结构简称为顺序栈,它是运算受限的线性表。因此,可用数组来实现顺序栈。 通常由一个一维数组和一个记录栈顶元素位置的变量组成。 当栈中没有数据元素时,表示为栈空。栈顶元素所对应的下标值top=-1。 在刚才基础上执行Push(S, ‘A’)后得到这种状态 又有三个元素B、C、D先后入栈,此时栈顶元素的下标值top=3。栈已满。 在刚才状态下,执行两次Pop(S,x)运算后得到 顺序存储结构 顺序栈的C#语言描述如下: public class SeqStack { private int maxSize; //顺序栈的容量 private char[] data; //数组,用于存储顺序栈的数据元素,这里存储的只有字符型 private int top; //指示顺序栈的栈顶 } maxSize 为栈中元素的最大容量。 data域:为一个一维数组,用于存储栈中元素。 top域:栈顶指针。取值范围为0~MaxSize-1。 top=-1表示栈空,top=MaxSize-1表示栈满。 类的实现 使用SeqList s = new SeqList()生成一个SeqList类的对象实例 栈底元素为 栈顶指针为 进栈时需将s.top加1,退栈时需将s.top 减1 s.top0表示空栈, s.top =MaxSize-1表示栈满 基本操作 1. 初始化栈S //构造函数 public SeqStack(int size) { data =new char[size]; maxSize = s

文档评论(0)

maxmin + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档