网站大量收购独家精品文档,联系QQ:2885784924

Chapter6+队列-循环队列.ppt

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
-操作1-析构函数 templateclass T LinkedQueueT::~LinkedQueue ( ) { //析构函数,删除全部节点 NodeT * next; while(front) { next = front-next; delete front; front = next; } } O(n) -操作2-判断队列是否已满 templateclass T bool LinkedQueueT ::IsFull( ) const { //判断队列是否已满 NodeT * p; try { p = new NodeT; delete p; return false; } catch(NoMem) { return true; } } -操作3-返回队列中的第一个元素 templateclass T T LinkedQueueT ::First( ) const { //返回队列中的第一个元素 if (IsEmpty( )) throw OutOfBounds( )); return front-data; } -操作4-返回队列中的最后一个元素 templateclass T T LinkedQueueT ::Last( ) const { //返回队列中的第一个元素 if (IsFull( )) throw OutOfBounds()); return rear-data; } -操作5-向队列添加元素x templateclass T 向队列添加元素x LinkedQueueT LinkedQueueT ::Add(const T x) { NodeT * p = new NodeT; p-data = x; p-link = null; if (front) rear-link = p; 后插元素 else front = p; rear = p; return * this; } -操作6-删除第一个元素x templateclass T 删除第一个元素x LinkedQueueT LinkedQueueT ::Delete(const T x) { if (IsEmpty( )) throw OutOfBounds( )); //保存第一个元素到x x = front-data; //删除第一个元素 NodeT * p = front; 前删元素 front = front-next; delete p; return * this; } 6.5 队列应用-火车车厢重排 缓冲铁轨按照FIFO的方式运作:队列 入轨 出轨 5,8,1,7,4,2,9,6,3 9,8,7,6,5,4,3,2,1 H1 H2 H3 铁轨Hk作为直接将车厢从入轨移动到出轨的通道, 因此实际可作为缓冲轨道的数目为k-1。 5,8,1,7,4,2,9,6,3 3 Step 1: H1 H2 H3 Step 2: 3 H1 6 H2 H3 Step 3: 3 H1 6 9 H2 H3 5,8,1,7,4,2,9,6 5,8,1,7,4,2,9 5,8,1,7,4,2 5,8,1,7,4,2 5,8,1,7,4 Step 4: 3 H1 6 9 H2 H3 2 5,8,1,7 Step 5: 3 H1 6 9 H2 H3 2 4 5,8,1 Step 6: 3 H1 6 9 H2 H3 2 4 7 数据结构与算法 2009年秋季 授课教师:张剑波 方 芳 授课班级:111081-4班 115081-2班 Chapter6 队列(Queue) 本章教学内容 6.1 队列结构特性 6.2 抽象数据类型 6.3 公式化描述(顺序队列) 6.4 链表描述(链队列) 6.5 应用 1. 火车车厢重排 6.1 队列结构特性 2、几个相关的概念 1、定义 队列是一种特殊的线性表,是一种只允许在表的一端进行插入操作,而在另一端进行删除操作的线性表。 a1 a2 a3 … an 入队列 出队列 队头(front) 队尾(rear) 3、重要特征 每次进队列的元素都放在原队列队尾之后而成为新的队尾元素; 每次出队列的数据元素都是原队头元素; 先入队列的元素先出队列,后入队列的元素后出队列。 队列是一个先进先出的线性表(First In First Out,FIFO)。 如:(1)日常生活中的排队; (2)操作系统中的作业队列。 C 课堂练习 3、设栈

文档评论(0)

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

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

1亿VIP精品文档

相关文档