数据结构(05中文)教案第3章队列相关附件6990-1ppt课件.pptVIP

数据结构(05中文)教案第3章队列相关附件6990-1ppt课件.ppt

  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文档。上传文档
查看更多
数据结构(05中文)教案第3章队列相关附件6990-1ppt课件

第三章 栈与队列;3.4队列 ( Queue );队列的抽象数据类型;队列的表示和实现;顺序队列的实现;队列的进队和出队 ;循环队列及其实现;循环队列的进队和出队;存储队列的数组被当作首尾相接的表处理。 队头、队尾指针加1时从maxSize -1直接进到0,可用语言的取模(余数)运算实现。 队头指针进1: front = (front + 1) % maxSize; 队尾指针进1: rear = (rear + 1) % maxSize; 队列初始化:front = rear = 0; 队空条件:front == rear; 队满条件:(rear + 1) % maxSize == front front = rear可能表示队空,也可能表示队满 应另设标志以便区别队空状态 或少用一个位置 ;循环队列及其实现;循环队列及其实现;第三种方法:使用一个计数器记录队列中元素的总数(实际上是队列长度)。下面是实现循环队列上的六种基本操作,为此先给出循环队列的类型定义。 #define QueueSize 100 typedef char DataType; typedef Struct{ int front; int rear; int count; datatype data[queuesize] }cirqueue;;(1)置空队 void initqueue(cirqueue *q){ q–front=q–rear=0; q–count=0; } (2)判断队空 int queueempty(cirqueue *q) { return q–count==0; } (3)判断队满 int queuefull(cirqueue *q){ return q–count==queuesize; };(4)入队 void enqueue(cirqueue *q, datatype x) { if(queuefull(q)) error(“queue overflow”); q–count++; q–data[q–rear]=x; q–rear=(q–rear+1)%queuesize; } ;(5)出队 datatype dequeue(cirqueue *q) { datatype temp; if(queueempty(q)) error(“queue underflow”); temp=q–data[q–front]; q–count--; q–front=(q–front+1)%queuesize; return temp; } ;(6)取队首元素 datatype queuefront(cirqueue *q) { if(queueempty(q)) error(“queue is empty.”); return q–data[q–front]; };1、循环队列的优点是什么?如何判断它的空和满? 2、设长度为n的链队列用单循环链表表示,若只设头指针,则怎样进行入队和出队操作;若只设尾指针呢? 3、用第一种、第二种方法,即设状态标示、少用一个元素空间的方法来区别循环队列的队空和队满,试设计置空队、判队空、判队满、出队、入队及取队头元素等六个基本操作。 4、如果头指针、尾指针、队列长度中只能选两个来实现队列,你使用哪两个?; 假设循环队列只设rear和quelen来分别指示队尾元素的位置和队中元素的个数,试给出判断此循环队列的队满条件,并写出相应的入队算法。 作业 出队算法?要求出队时需返回队头指针。 ;队列的链接表示 — 链式队列;3.4.3 链队列 和顺序队列类似,我们也是将这两个指针封装在一起,将链队列的类型LinkQueue定义为一个结构类型: typedef struct queuenode{ datatype data; struct queuenode *next;

文档评论(0)

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

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

1亿VIP精品文档

相关文档