第4章 队列.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用数据结构基础 第4章 队列 第4章 队列 知 识 点 队列的定义和特点 队列的存储实现及运算实现 队列的应用举例 难 点 循环队列的特点及判断溢出的条件 利用队列的特点设计相关的应用问题 要 求 熟练掌握以下内容: 队列的特点和基本运算 循环队列的特征和基本运算 了解以下内容: 队列运算的时间复杂性分析 队列的实际应用 第 4 章 目录 4-1 队列的定义和基本运算 4-2 队列的存储及运算的实现 4-3 队列的应用举例 小 结 验证实验4: 队列子系统 自主设计实验4:循环队列的实现和运算 单元练习4 4-1 队列的定义和基本运算 4-1-1 队列(Queue)的定义 1.队列的定义 ????? 设有n个元素的队列Q=(a1,a2,a3,…,an),则称a1为队首元素,an为队尾元素。队列中的元素按,a1,a2,a3,…,an–1 ,an的次序进队,按a 1,a2,a3,…,an–1 ,an次序出队,即队列的操作是按照“先进先出” 的原则进行的。 2. 队列的特性 (1)队列的主要特性是“先进先出”。 (2)队列是限制在两端进行插入和删除操作的线性表。 能够插入元素的一端称为 队尾(Rear),允许删除元素的一端称为 队首(Front)。 (3)循环队列数据类型: #define MAXLEN 10 typedef struct { int data[MAXLEN]; // 定义数据的类型及数据的存储区 int front,rear; // 定义队头、队尾指针 }csequeue; (4)入队作业处理的预计执行时间可以用产生数函数rand()产生,也可以从键盘输入。 3.实验要求 (1)利用C或C++语言完成算法设计和程序设计。 (2)上机调试通过实验程序。 (3)输入数据,检验程序运行结果。 (4)给出具体的算法分析,包括时间复杂度和空间复杂度等。 (5)撰写实验报告。 单元练习4 在优先队列中的每一个元素都有一个被称为权的数据项,权的大小决定了元素的优先级。实现优先队列有两种方法: (1)按权的大小进行插入,使整个队列始终保持按优先级次序排列的状态,而删除操作则和普通队列一样,只删除队首元素。 (2)插入操作和普通队列一样,只在队尾进行插入,而删除操作则是根据元素的优先级来进行的,即只能删除优先级最高的元素。 限于篇幅,有关优先队列具体算法的实现,在此不作介绍了。 4.双队列(Double-ends Queue) 操作系统的工作调度所采用的则是双队列,这种队列的两端都可以存取数据,其结构如图4-7所示。 取出 取出 存入 存入 图4-7 双队列结构 如果将图4-7切成左、右两部分,则成了两个独立的栈,所以双队列就是将两个栈的栈底结合起来而构成的。与队列相同的是双队列也需要两个指针分别指向结构的两端。CPU的调度在多人使用的计算机系统中是一种重要的概念,其调度的方法也可分为:输入限制性双队列和输出限制性双队列等形式。 输入限制性双队列由双向队列数据输入、从队头输出数据、从队尾输出数据三部分组成,可以由用户按照提示自由选择“从队头输出”或“从队尾输出”,以模拟各种可能的输出结果。 (1)向队列数据输入InQueue( ) void InQueue(int val) // 输入队列数据 { rear=(rear++)%MAXLEN; if(front==rear) printf(队列已满!); else queue[rear]=val; } (2)?队头输出数据 OutQueue_front( ) int OutQueue_front() // 从队头输出队列数据 {int t; if(front==rear) return -1; t=queue[++front]; if(front==MAXLEN) front=0; return t; } (3)从队尾输出数据 OutQueue_rear( ) int OutQueue_rear() // 从队尾输出队列数据 {int t; if(front==rear)

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档