首页 > 知识点讲解
       队列
知识路径: > 计算机系统基础知识 > 计算机软件基础知识 > 数据结构与算法 > 常用数据结构 > 线性结构 > 栈和队列 > 
被考次数:3次     被考频率:中频率     总体答错率:46%     知识难度系数:     
相关知识点:5个      
               队列的定义及基本运算
               队列是一种先进先出(FIFO)的线性表,它只允许在表的一端插入元素,而在表的另一端删除元素。在队列中,允许插入元素的一端称为队尾(rear),允许删除元素的一端称为队头(front)。
               队列的基本运算如下:
               ①初始化队列initQueue(Q):创建一个空的队列Q。
               ②判队空isEmpty(Q):当队列为空时返回“真”值,否则返回“假”值。
               ③入队enQueue(Q,x):将元素x加入到队列Q的队尾,并更新队尾指针。
               ④出队deQueue(Q):将队头元素从队列Q中删除,并更新队头指针。
               ⑤读队头元素frontQueUe(Q):返回队头元素的值,但不更新队头指针。
               队列的存储结构
               (1)队列的顺序存储。队列的顺序存储结构又称为顺序队列,它也是利用一组地址连续的存储单元存放队列中的元素。由于队中元素的插入和删除限定在表的两端进行,因此设置队头指针和队尾指针,分别指示出当前的队首元素和队尾元素。
               设顺序队列Q的容量为6,其队头指针为front,队尾指针为rear,头、尾指针和队列中元素之间的关系如下图所示。
               
               队列的头、尾指针与队列中元素之间的关系
               在顺序队列中,为了简化运算,元素入队时,只修改队尾指针;元素出队时,只修改队头指针。由于顺序队列的存储空间是提前设定的,因此队尾指针会有一个上限值,当队尾指针达到其上限时,就不能只通过修改队尾指针来实现新元素的入队操作了。此时,可将顺序队列假想成一个环状结构,如下图所示,称之为循环队列。
               
               循环队列的头、尾指针示意图
               设循环队列Q的容量为MAXSIZE,初始时队列为空,且Q.rear和Q.front都等于0,如下图(a)所示。元素入队时修改队尾指针,即令Q.rear=(Q.rear+1)% MAXSIZE,如下图(b)所示。元素出队时修改队头指针,即令Q.front=(Q.front+1)% MAXSIZE,如下图(c)所示。
               
               循环队列的头、尾指针示意图
               根据出队列操作的定义,当出队操作导致队列变为空时,有Q.rear==Q.front,如上图(d)所示;若队列满,则Q.rear==Q.front,如上图(e)所示。在队列空和队列满的情况下,循环队列的队头、队尾指针指向的位置是相同的,此时仅仅根据Q.rear和Q.front之间的关系无法断定队列的状态。为了区分队空和队满的情况,可采用两种处理方式:其一是设置一个标志位,以区别头、尾指针的值相同时队列是空还是满;其二是牺牲一个元素空间,约定以“队列的尾指针所指位置的下一个位置是头指针”表示队列满,如上图(f)所示,而头、尾指针的值相同时表示队列为空。
               设队列中的元素类型为整型,则循环队列的类型定义为:
               
               【函数】创建一个空的循环队列。
               
               【函数】元素入循环队列。
               
               【函数】元素出循环队列。
               
               (2)队列的链式存储。队列的链式存储也称为链队列。为了便于操作,可给链队列添加一个头结点,并令头指针指向头结点,如下图所示。因此,队列为空的判定条件是头指针和尾指针的值相同,且均指向头结点。
               
               链队列示意图
               队列的应用
               队列常用于处理需要排队的场合,如操作系统中处理打印任务的打印队列、离散事件的计算机模拟等。
 
本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2022年上半年
   数据库系统工程..
   上午试卷 综合知识
第7题
选择题
依次在初始为空的队列中插入元素5、6、7、8以后,紧接着做了两次删除操作,此时的队头元素是()。

45%
   2021年上半年
   数据库系统工程..
   上午试卷 综合知识
第7题
选择题
( )是一种先进先出的线性表,只允许在表的一端插入元素,而在表的另一端删除元素。

54%
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有