[理学]数据结构教程简答易懂第二章.pptVIP

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

南京信息职业技术学院 计算机基础教研室 南京信息职业技术学院 计算机基础教研室 第二章 线性表及其顺序存储结构 2.3 队列(Queue)及其应用 2.3.1 队列概念 队列的定义 队列(queue)是在一端进行插入,在另一端进行删除操作的线性表。First In First Out - FIFO 队列是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为队头(也称排头),通常也用一个指针(front)指向队头元素的前一个位置。 队列的运算和声明 入队:在队列尾部插入一个新元素x。 退队:删除队列中的队首元素。 检测队列状态。 取队列的队首元素。 创建一个空队列Q。 …… 2.3.2 循环队列及其运算 把队列空间从逻辑上看成是一个首尾相连的环。 如何判断一个循环队列是满还是空? 如何判断循环队列是空?是满? 判满条件(设m=6): 上面循环队列存在的问题及解决方法 问题: 在队列满时仍有一个元素的空间未使用 解决方法: 启用该元素,并设置一标志s,定义如下: 0 (队列中无元素) 1 (队列中有元素) 于是有: 判空条件: s == 0 front == rear ; (可简化为:s == 0 ) 判满条件: s == 1 front == rear ; 请大家分析:如何求循环队列中有多少元素 设循环队列的容量为10(序号为1-10)。先经过一系列的入队与退队操作后,有 front=5,rear=9 front=9,rear=5 请问在这两种情况下,循环队列中各有多少元素? 设循环队列的容量为m 如果rearfront,则循环队列中的元素个数为rear-front 如果rearfront,则循环队列中的元素个数为m-front+rear 入队 入队运算的操作过程如下: 首先判断循环队列是否满:当循环队列非空(s等于1)且队尾指针等于排头指针时,说明循环队列已满,不能进行入队运算。这种情况称为“上溢”。此时给出提示,算法结束。 将队尾指针进一(即rear=rear+1),并当rear等于m+1时rear=1。 将新元素x插入到队尾指针指向的位置,并且置循环队列非空标志。 退队 退队运算的操作过程如下: 首先判断循环队列是否空:当循环队列空(s等于0),不能进行退队运算,这种情况称为“下溢”。此时给出提示,算法结束。 将排头指针进一(即front=front+1),并当front等于m+1时front=1。 将排头指针指向的元素赋给指定的变量。 判断退队后循环队列是否为空。当front等于rear置循环队列空标志(即s为0) 循环队列类的实现 template class T class sq_Queue { private: int mm; int front; int rear; int s; T *q; public: sq_Queue(int); void prt_sq_Queue(); int flag_sq_Queue(); void ins_sq_Queue(T); T del_sq_Queue(); }; 循环队列类详见教材P40: sq_Queue.h 例2 .6 建立容量为10的空循环队列,然后输出排头与队尾指针以及队中元素;依次将50、60、70、80、90、100等六个数入队,输出排头与队尾指针以及队列中元素;再连续将三个元素出队,最后再输出排头与队尾指针以及队列中元素。 队列的应用 给工人分配工作的模拟 输入输出缓存区的结构 汽车加油站的工作模拟 2.4 字符串 2.4.1 字符串的概念 字符串 是由n(n≥0)个字符组成的有限序列,记为: “ a1 a2 a3 … an ” 其中: 用双引号括起来的字符序列是串的值; ai (1=i=n)可以是字母、数字或其他字符; n为串中字符的个数,称为串的长度; n=0的串称为空串。 串的顺序存储结构 将串的各个字符,按顺序存入连续的存储单元中,使逻辑上相邻的字符在内存中也相邻。也称为顺序串。 串运算 求串的长度

文档评论(0)

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

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

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档