数据结构与算法4栈和队列.PPT

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

第二章 数据结构与算法 2.4 栈和队列 1. 栈及其基本运算 (1)栈的基本概念 栈实际上也是线性表,只不过是一种特殊的线性表。在这种特殊的线性表中,其插入与删除运算都只在线性表的一端进行。即在这种线性表的结构中,一端是封闭的,不允许进行插入与删除元素;另一端是开口的,允许插入与删除元素。即栈是限定在一端进行插入与删除的线性表。 第二章 数据结构与算法 在栈中,允许插入与删除的一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,从而也是最先能被删除的元素。即栈是按照“先进后出”的原则组织数据的。 通常用指针top来指示栈顶的位置,用指针bottom指向栈底。 往栈中插入一个元素成为入栈运算,从栈中删除一个元素称为退栈运算。栈顶top动态反映了栈中运算的变化。 第二章 数据结构与算法 (2)栈的顺序存储及运算 与一般的线性表一样,在程序设计语言中,用一维数组作为栈的顺序存储看见。通常,栈底指针指向栈空间的低地址一端。 退栈运算: 退栈运算是指取出栈顶元素给一个指定的变量。 第二章 数据结构与算法 栈的基本运算 入栈运算: 入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作:首先将指针进一,然后将新元素插入到栈顶指针指向的位置。 第二章 数据结构与算法 读栈顶元素: 读栈顶元素是指将栈顶元素赋给一个指定的变量。必须注意的是,这个运算不删除栈顶元素,只是将它的值赋给一个变量,因此,在这个运算中,栈顶指针不会改变。 第二章 数据结构与算法 2. 队列及其基本运算 (1)队列的基本运算 队列是指允许在一端进行插入,而在另一端进行删除的血小板。允许插入的一端称为对尾,通常用一个称为尾指针的指向队列尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为排头。队列又称为“先进先出”表。在队列中,队尾指针rear与排头指针front共同反映了队列中元素动态变化的情况。 往队列的队尾插入一个元素称为队运算,从队列的排头删除一个元素称为退队运算。 第二章 数据结构与算法 (2)循环队列及其运算 所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列使用。如图1.4所示。在循环队列中,当存储空间的最后一个位置已被使用而再将要进行入队运算时,只要存储空间的第一个位置空闲,便可将元素加入到第一个位置,即将存储空间的第一个位置作为队尾。因此,循环队列是队列的一种顺序存储结构。 第二章 数据结构与算法 在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从排头指针front指向的后一个位置到队尾指针rear指向的位置之间所有的元素均为队列中的元素。 循环队列的基本运算有两种:入队运算与退队运算。 第二章 数据结构与算法 入队运算: 入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:首先将队尾指针进一;然后将新元素插入到队尾指针指向的位置。 第二章 数据结构与算法 退队运算: 退队运算是在循环队列的排头位置退出一个元素并赋给指定的变量。这个运算有两个基本操作:首先将排头指针进一,并当front=m+1时置front=1;然后将排头指针指向的元素赋给指定的变量。 * * *

文档评论(0)

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

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

1亿VIP精品文档

相关文档