第3章栈与队列概述.ppt

队列 这种表示方法会遇到一个问题,假设队列的最大空间为6,则在如(d)所示的情况下,不能再向队列插入新的队尾元素,否则会导致数组越界,而此时队列的实际可用空间并未占满。对于这个问题,一个较好的解决办法是将顺序队列转换为一个循环空间,称为循环队列。 队列 如下图所示。上图所示的队列转换为循环队列后如下一页图所示,指针和队列元素之间关系不变。 队列 队列 从上图中的(b)和(c)可看出,用循环队列时会出现一个问题,即队满和队空时都有Q.front = Q.rear,因此无法判断队列是“空”还是“满”。解决的办法之一就是:规定队列的最大长度始终小于存储空间大小,即留一个存储空间来区分队列空还是满。循环队列的类描述以及函数实现分别见以下程序。 循环队列的类描述: 队列 SeqQueue的成员函数: 队列 例3-4 在操作系统中,为了充分发挥计算机的效率,必须处理好中央处理机和外围设备在速度上不匹配的问题。信息的输入/输出都在内存中进行,需要设置输入/输出缓冲区,采用成组传送的办法,这样可实现主机与外部设备,以及外部设备与外部设备间的并行操作。在缓冲区内所有的信息都要排队,按照“先来先服务”的原则处理。因此,缓冲区实际上是一个队列的结构。下面模拟上述缓冲区的操作,当一个设备向缓冲区发送信息时,先要检查缓冲区中有无空间,

文档评论(0)

1亿VIP精品文档

相关文档